Avatar billede jensen363 Forsker
16. november 2015 - 11:23 Der er 9 kommentarer og
1 løsning

Brug af tegn i forbindelse med generering af csv filer

I forbindelse med export af data som *.csv filer benytter jeg denne modulkode :

Public Function Export_001()
Dim trz As Integer
Dim strCSV As String

For trz = 1 To 511
Close #trz
Next trz
trz = FreeFile
Open "C:\Data\Upload files\Seaoon 2007.csv" For Output Access Write As #trz

With CurrentDb.OpenRecordset("Season 07")
Dim x As Integer
For x = 0 To .Fields.Count - 1
strCSV = strCSV & strColumnDelimiter & .Fields(x).Name & "| "
Next x
Print #trz, Mid(strCSV, Len(strColumnDelimiter) + 1)

Do Until .EOF
strCSV = ""
For x = 0 To .Fields.Count - 1
strCSV = strCSV & strColumnDelimiter & Nz(.Fields(x), "<NULL>") & "| "
Next x
Print #trz, Mid(strCSV, Len(strColumnDelimiter) + 1)
.MoveNext
Loop
End With
Close #trz

End Function

Det virker I og for sig godt, men fra tid til anden sker der det, at "| " indgår som en del af teksten I en record, hvilket gør at den deles op I t kolonner :-(

Er der nogen måde hvorpå jeg kan undgå dette ????
Avatar billede terry Ekspert
16. november 2015 - 13:23 #1
If you can send me an example of your dB then I'll have a play around to see if I can find a solution

No need for full dB just a couple of records, the code and what ever else I might need.

I assume that the character has to be exported to the file?
Avatar billede jensen363 Forsker
16. november 2015 - 13:34 #2
I'll create an example for you :-)
Avatar billede terry Ekspert
16. november 2015 - 13:50 #3
ekspertenATsanthell.dk
AT = @

Away for an hour or so :-)
Avatar billede jensen363 Forsker
16. november 2015 - 13:57 #4
An example sent.

If possible, the character must be included, - otherwise not so important.
Avatar billede terry Ekspert
16. november 2015 - 14:50 #5
men fra tid til anden sker der det, at "| " indgår som en del af teksten I en record, hvilket gør at den deles op I t kolonner :-(


Well the obvious reason for this is because your using the same character as the field separator. So you will have to decide if you should change the field separator to something else, or remove/change the character in the field before writing to the file.

So the choice is yours :-)
Avatar billede jensen363 Forsker
16. november 2015 - 14:53 #6
In this case, the one receiving the data after extract would prefer to keep the delimiter as it is, so the choice is obvious :-)
Avatar billede terry Ekspert
16. november 2015 - 15:05 #7
Replace this line
strCSV = strCSV & strColumnDelimiter & Nz(.Fields(x), "<NULL>") & "| "



with this

strCSV = strCSV & strColumnDelimiter & Replace(Nz(.Fields(x), "<NULL>"), "|", "#") & "| "


I'm just using the replace function to change the character to a # character. You can always choose something else, also "" (empty) but this will result in the columns not being aligned.
Avatar billede terry Ekspert
16. november 2015 - 15:05 #8
.
Avatar billede jensen363 Forsker
16. november 2015 - 15:31 #9
Perfect solution, Thanks !
Avatar billede terry Ekspert
16. november 2015 - 16:01 #10
Thank you too
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester