Momenteel gebruik ik de volgende code om gegevens uit een Microsoft Access Database in Excel te krijgen:
De bedoeling is dat Excel het comma delimited bestand opent en dat de gegevens dan automatisch in het werkblad ingevoegd worden.
So far so good, maar:
het probleem zit hem in kolom B, ofwel het veld telefoonnummer van de recordset.
Excel converteert nl. het telefoonnummer (dat normaliter als gegevenstype TEXT gezien moet worden), naar een gewoon nummer.
Maw: dit gegeven in het csv-bestand: 01234567890123456789012347 wordt het volgende in Excel: 1,23457E+24.
Nu weet ik dat dit wel een erg lang en fictief nummer is, maar het gaat om het principe: dit veld mag alleen uit nummers bestaan en max. 32 tekens lang.
Hoe kan ik dit nu oplossen?
PS: De gegevens tussen aanhalingstekens zetten in het csv-bestand hielp ook al niet....
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| Private Sub mnuExcel_Click()
Dim db As Database
Dim rs As Recordset
Dim strSQL As String
Dim strTemp As String
Dim intKanaalnummer As Integer
intKanaalnummer = FreeFile
Set db = OpenDatabase(App.Path & "\test.mdb")
strSQL = "SELECT * FROM Telefoonlijst WHERE OwnerId = " & Loginscreen.Id & " ORDER BY Naam"
Set rs = db.OpenRecordset(strSQL)
Open App.Path & "\test.csv" For Output As #intKanaalnummer
Do While Not rs.EOF
strTemp = rs.Fields("Naam") & ";" & rs.Fields("Telefoonnummer") & ";" & rs.Fields("VkNummer") & ";"
Print #intKanaalnummer, strTemp & vbCrLf;
rs.MoveNext
Loop
Close #intKanaalnummer
Shell "C:\Program Files\Microsoft Office\Office\EXCEL.EXE " & App.Path & "\test.csv", vbNormalFocus
End Sub |
De bedoeling is dat Excel het comma delimited bestand opent en dat de gegevens dan automatisch in het werkblad ingevoegd worden.
So far so good, maar:
het probleem zit hem in kolom B, ofwel het veld telefoonnummer van de recordset.
Excel converteert nl. het telefoonnummer (dat normaliter als gegevenstype TEXT gezien moet worden), naar een gewoon nummer.
Maw: dit gegeven in het csv-bestand: 01234567890123456789012347 wordt het volgende in Excel: 1,23457E+24.
Nu weet ik dat dit wel een erg lang en fictief nummer is, maar het gaat om het principe: dit veld mag alleen uit nummers bestaan en max. 32 tekens lang.
Hoe kan ik dit nu oplossen?
PS: De gegevens tussen aanhalingstekens zetten in het csv-bestand hielp ook al niet....