Avatar billede Kim Neesgaard Seniormester
05. september 2006 - 16:56 Der er 12 kommentarer og
1 løsning

Forbindelsesstreng til en .csv-fil

Når man laver en forbindelse til en Excelfil, kan man gøre det med:

Dim ConnExcel As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\servernavn\x\y\test.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""")

men hvordan laver man en forbindelse til en .csv-fil? Hvis jeg bruger ovennævnte blot med .csv (filen har Excel-ikon), så får jeg:

External table is not in the expected format.

?
Avatar billede arne_v Ekspert
05. september 2006 - 17:25 #1
Avatar billede Kim Neesgaard Seniormester
05. september 2006 - 19:42 #2
Det gør det i høj grad! Jeg prøver på min arbejdsmaskine i morgen.
Avatar billede Kim Neesgaard Seniormester
06. september 2006 - 10:59 #3
Hm - den påstår, at stien til filen ikke er en 'valid path', men en File.exists til helt samme sti+fil viser, at filen faktisk KAN findes, så der må være noget andet i vejen?

Min streng er:

Dim ConnExcel As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\servernavn\x\y\test.csv;Extended Properties=""text;HDR=Yes;FMT=Delimited""")
Avatar billede arne_v Ekspert
07. september 2006 - 02:58 #4
Virker det med en lokal fil (ikke UNC notation) ?
Avatar billede Kim Neesgaard Seniormester
08. september 2006 - 12:28 #5
Nej - så skriver den:

'C:\test.csv' is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.

Hvis jeg tjekker eksistens af filen med File.Exists, så kan den godt finde filen.
Avatar billede arne_v Ekspert
08. september 2006 - 17:23 #6
skal du ikke bare angive et directory og så lade filnavn være tabelnavn ?
Avatar billede Kim Neesgaard Seniormester
08. september 2006 - 19:08 #7
Hvordan vil du konkret skrive det?
Avatar billede arne_v Ekspert
08. september 2006 - 23:07 #8
udfra eksemplet i linket:

Dim ConnExcel As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\servernavn\x\y\;Extended Properties=""text;HDR=Yes;FMT=Delimited""")
Avatar billede Kim Neesgaard Seniormester
09. september 2006 - 15:20 #9
Jo - så kan den i hvert fald oprette forbindelsen, men hvis jeg skriver:

Dim sql as string = "SELECT * FROM test.csv"

og forsøger at fylde en adapter, så siger den:

The Microsoft data engine could not find the object 'test.csv'

Var det sådan, du mente?
Avatar billede arne_v Ekspert
10. september 2006 - 03:09 #10
ja

det er hvad de gør i artiklen (jeg har aldrig selv prøvet)

virker det hvis du omdøber fra .csv til .txt ?
Avatar billede Kim Neesgaard Seniormester
10. september 2006 - 15:02 #11
Så får jeg samme besked.
Avatar billede Kim Neesgaard Seniormester
18. september 2006 - 13:11 #12
Så har jeg omsider fundet ud af det og du var inde på det helt rigtige!!

Sådan kan jeg gennemføre åbningen:

Dim ConnExcel As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\servernavn\x\y\;Extended Properties=""Text;HDR=Yes;FMT=Delimited""")

altså som du skriver kun åbne til selve biblioteket.

Herefter:

Dim cmd As New OleDbCommand("SELECT * FROM Test.csv WHERE x = 'noget'", ConnExcel)
Dim adapter As New OleDbDataAdapter(cmd)
Dim table As New DataTable()
ConnExcel.Open()
adapter.Fill(table)

Lægger du et svar?
Avatar billede arne_v Ekspert
19. september 2006 - 01:30 #13
ok
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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