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

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