Avatar billede jensen363 Forsker
18. oktober 2017 - 14:58 Der er 5 kommentarer

Export CSV file Character set : UTF-8

Følgende eksporter indholdet af en tabbel til en  *.csv fil - den skal gerne eksporteres med UTF-8 karakter sæt ... hvor skal det indsættes i koden ???

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

For trz = 1 To 511
Close #trz
Next trz
trz = FreeFile
Open "C:\Data.noncritical\Watson EDW Data\EDW_BookingStatus.csv" For Output Access Write As #trz

With CurrentDb.OpenRecordset("Export BookingStatus")
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
Avatar billede terry Ekspert
18. oktober 2017 - 15:30 #1
Dont think you can do anything with character set with VBA Print # statement, so you should maybe use another method for creating files

https://groups.google.com/forum/#!topic/microsoft.public.access.modulesdaovba/u51ZteQArfU
Avatar billede jensen363 Forsker
18. oktober 2017 - 15:35 #2
Hi Terry

I guess you're right :-(
Avatar billede terry Ekspert
18. oktober 2017 - 15:46 #3
well it would be nice if I wasn't, but after a bit of research I think that's the case ;-)

Should be too difficult to change your code to utilize writing to stream..
Avatar billede terry Ekspert
18. oktober 2017 - 15:47 #4
Should = Shouldn't
Avatar billede bvirk Guru
18. oktober 2017 - 21:23 #5
"For trz = 1 To 511
Close #trz
Next trz"

Det var da en frygtelig indledning - hvorfor skal programmet: "gem csv fil" påtage sig ansvaret for mulige andre rutiners åbne filer?

Nuvel - følgende har jeg testet til gemmer som utf-8 (utf-8y melder Jedit)

Sub string2File(fileName, str)
    With New ADODB.Stream
        .Type = adTypeText
        .charset = "utf-8"
        .Open
        .WriteText str
        .SaveToFile fileName, adSaveCreateOverWrite
    End With
End Sub
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
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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