.csv bestanden in lezen in Access

Status
Niet open voor verdere reacties.

MarcovD

Gebruiker
Lid geworden
3 feb 2006
Berichten
109
Hallo,

Is het ook mogelijk om .csv (comma separated) bestanden in acces in te lezen en de gegevens over te zetten naar een tabel ?
 
Geen probleem

Ik doe dit regelmatig zonder probleem. Kan zijn dat je een melding krijgt dat het tekstscheidingsteken overeenkomt met het decimaalsymbool ( de , dus). Bij de import even op geavanceerd klikken en decimaalsymbool veranderen.

Je hebt twee keuzes. Of het csv bestand importeren maar je kunt ook gewoon een koppeling met het bestand maken. ( kies bestand -> externe gegevens ophalen) Wil je het in een tabel krijgen vanuit de tweede situatie (koppelen) kun je gewoon een querie draaien op het csv bestand (toevoegQ of een tabelmaakQ) afhankelijk van je situatie en wat je wilt. Suc6
 
Wat ik eigenlijk wil is middels een knop een bestand inlezen en dat deze dan gelijk in een tabel wordt gezet. Dus ik wil alles middels VB doen. Ik ben inmiddels zo ver dat ik het bestand wat ik wil inlezen kan opzoeken en aangeven.

Ik heb dus een bestandsnaam en dat bestand wil ik inlezen.

Kan je misschien een stukje code bijvoegen?
 
Doe het met een macro

Ik heb geen VBA achtergrond. In dit geval maak ik een serie queries die achter elkaar doen wat ik wil. (bv eerst een toevoegquerie die de data in je tabel zet en vervolgens een bijwerkquerie die wat velden bijwerkt). Die queries zet je in een macro achter elkaar. Macro achter een knop ( alle meldingen uitzetten) en klaar. Suc6
 
Het is gelukt met de code:
DoCmd.TransferText acImportDelim, "Specificatie", "Access Tabel naam", Bestandsnaam, -1

Waar ik zelf lang naar gezocht heb is het aanmaken van een specificatie bestand. Dit bestand maak je aan door een import te doen van het csv bestand. Deze import moet je door in het tabel tabblad rechtermuis toets te doen en dan import te kiezen. Hier kies je het bestand en dan doe je geavanceerd, daar maak je dan je specificatie file op. Let op bij een comma separated file dat je aan moet geven dat bij eventueel getallen de comma een punt moet zijn, anders krijg je een melding dat beide gelijk zijn. Hierna kies je opslaan als en geef je een naam in. Deze naam gebruik je dan weer in bovenstaande code stukje en dan gaat het goed.

Ik hoop dat andere hiermee geholpen zijn.
 
Het is gelukt met de code:
DoCmd.TransferText acImportDelim, "Specificatie", "Access Tabel naam", Bestandsnaam, -1

Waar ik zelf lang naar gezocht heb is het aanmaken van een specificatie bestand. Dit bestand maak je aan door een import te doen van het csv bestand. Deze import moet je door in het tabel tabblad rechtermuis toets te doen en dan import te kiezen. Hier kies je het bestand en dan doe je geavanceerd, daar maak je dan je specificatie file op. Let op bij een comma separated file dat je aan moet geven dat bij eventueel getallen de comma een punt moet zijn, anders krijg je een melding dat beide gelijk zijn. Hierna kies je opslaan als en geef je een naam in. Deze naam gebruik je dan weer in bovenstaande code stukje en dan gaat het goed.

Ik hoop dat andere hiermee geholpen zijn.

Kan je voor mij misschien een voorbeeld kunnen maken met een CSV bestand? bijvoorbeeld ik heb een namen.csv en die wil ik inlezen. Hoe dan de code eruit ziet

Alvast bedankt.
 
DoCmd.TransferText acImportDelim, "Specificatie", "Access Tabel naam", Bestandsnaam, -1

Eerst moet je een specificatie file maken zoals ik eerder heb beschreven, deze sla je dan op als "namenSpec" bijvoorbeeld. Als je dat hebt gemaakt dan wordt de bovenstaande code regel als volgt:

DoCmd.TransferText acImportDelim, "namenSpec", "tblNamen", <path>\namen.csv, -1

Ik hoop dat je hier wat aan hebt, zo niet laat het maar weten dan zal ik proberen je verder te helpen.
 
Okay, als ik eens CVS file heb, moet ik de tbl ook alvast hebben met de kollom indeling die overeenkomen met het csv bestand?
 
Nee de tabel wordt gemaakt op het moment dat je de code uitvoert. Als de tabel al bestaat dan worden de nieuwe records append aan de rest in de tabel.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan