Importing .txt file in 1 kolom

Status
Niet open voor verdere reacties.

Mitchk

Nieuwe gebruiker
Lid geworden
17 okt 2012
Berichten
3
Hoi, ik ben relatief nieuw met acces en heb gelijk een vraag!

Ik probeer een .txt bestand in te lezen, de structuur ziet er uit als volgt;

Amsterdam,Italy,New York,Belgium

Het idee is dat dit bestand kan bestaan uit duizenden namen. Mijn vraag is hoe kan ik dit .txt bestand gesplit op "," in één kolom krijgen? de enige manier waarop ik het tot dusver kan importeren is verdeeld over kolommen wat verdere bewerking onmogelijk maakt en maximaal aantal kolommen is gelimiteerd.

Ik hoop volledige te zijn geweest, indien niet hoor ik het graag indien dit eerder beantwoord is excuus voor de repost.

bij voorbaat dank voor hulp.
 
Welkom op HelpMij! En voor een beginner met Access een behoorlijk lastige vraag, want geen doorsnee probleem ;)
Je bent niet helemaal duidelijk in hoe je gegevensbestand er uit ziet; je laat een stukje tekst zien waarvan de gegevens zijn gescheiden door een komma. Maar verder? Is de hele tekst één lange 'zin'? Of bestaat het bestand uit blokken van woorden+komma van gelijke lengte, die zijn gelimiteerd door een Regeleinde? Dat je dus 4 woorden op één regel hebt, 4 woorden op de volgende etc?
In het laatste geval is er wel een oplossing, in het eerste heb je een probleem. Tenzij elk woord in hetzelfde veld moet worden gezet, dan is het weer simpel.

Laten we even uitgaan van het laatste geval: je wilt een tabel maken met één veld, en elk woord moet in een eigen record worden gezet. Dus als je 4321 woorden hebt, dan krijg je een tabel met één veld met 4321 records. Dat kun je simpel oplossen door de Import wizard te gebruiken. Hierbij geef je dan aan dat er geen tekstscheidingsteken is voor velden, en dat de records zijn gescheiden door een komma. Access maakt dan de door jou gewenste tabel(vorm) aan.
 
ha octafish! het bestand is als het ware een lange regel. het aantal tekens tussen de komma's kan varieren !
 
Dat laatste maakt niet uit; als het één lange regel is, kun je m.b.v. de aangegeven procedure het bestand denk ik wel inlezen.
Je zult een functie moeten maken die de klus klaart. Deze heb ik getest, en hij werkt. Wel nog even de namen van bronbestand etc. aanpassen!

Code:
Private Function TekstBestand_Uitlezen()
Dim strInputFileName As String
Dim MyString As String, mySQL As String
Dim MyNumber As Integer
    
    On Error Resume Next
    CurrentDb.Execute "DROP TABLE MitchK"
    strInputFileName = "C:\Dropbox\_HelpMij\Access\Mitchk.txt"
    CurrentDb.Execute "CREATE TABLE MitchK(ID COUNTER(1, 1) PRIMARY KEY, VeldNaam VARCHAR(255))", dbFailOnError
    CurrentDb.TableDefs.Refresh
    Application.RefreshDatabaseWindow
    Open strInputFileName For Input As #1
    With CurrentDb.OpenRecordset("MitchK")
        Do While Not EOF(1) ' Loop until end of file.
            Input #1, MyString
            .AddNew
            .Fields("Veldnaam") = MyString
            .Update
            Debug.Print MyString
        Loop
        .Close
    End With
    Close #1

End Function
Maak eerst in je database een nieuwe module aan. Druk op <Alt>+<F11>; je komt nu in het VBA venster. Kies <Invoegen>, <Module>. Plak daar bovenstaande code. Zet de cursor vervolgens ergens in de tekst, en druk op <F5>. That's it!
ALs het goed is, heb je nu een tabel.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan