csv importeren met tab als scheidingsteken

Status
Niet open voor verdere reacties.

Frits1969

Gebruiker
Lid geworden
29 nov 2009
Berichten
64
Hallo allemaal,

Ik wil in Access een csv bestand importeren.
Hiervoor gebruik ik deze code

Code:
Private Sub importCSV_Click()
DoCmd.TransferText acImportDelim, import, "Export_redcsv", "C:\Users\fwtva\Downloads\Export_redcsv.csv", True
End Sub

Echter, deze code genereerd wel het aantal gewenste regels, maar alleen de eerste kolom wordt gevuld. Ik vermoed dat dit komt omdat mijn csv bestand als scheidingsteken de tab heeft.
Zonder code importeren is geen probleem.

Overigens zou het ook mooi zijn als ik het csv bestand kan aanwijzen voor het importeren. (Zover is mijn VBA kennis nog niet)

Alvast bedankt voor de hulp.

Met vriendelijke groet,
Frits van Leeuwen
 
Beste Frits,

Mijn VBA kennis ook niet zo denderend, zal aan het jaartal liggen :)

Maar onderstaande code heb ik in een database zitten.
Daarmee kan je wel een bestand opzoeken.
Je zal het aan moeten passen op je eigen tabellen.

Ik hoop dat je er wat mee kan.

Code:
Private Sub Knop221_Click()

    Dim fDialog As Object
    Dim varFile As Variant
    Dim selectedFile
    
    ' Clear listbox contents.
    'Me.FileList.RowSource = ""
    
    ' Set up the File Dialog.
    Set fDialog = Application.FileDialog(3)
    
    With fDialog
    
        ' Allow user to make multiple selections in dialog box
        .AllowMultiSelect = False
                
        ' Set the title of the dialog box.
        .Title = "Selecteer het bestand met opgehaalde uren"
    
        ' Clear out the current filters, and add our own.
        .Filters.Clear
        .Filters.Add "CSV", "*.csv"
    
        ' Show the dialog box. If the .Show method returns True, the
        ' user picked at least one file. If the .Show method returns
        ' False, the user clicked Cancel.
        If .Show = True Then
    
        'Loop through each file selected and add it to our list box.
            'MsgBox (Dir(.SelectedItems(1)))
            'MsgBox (.SelectedItems(1))
            selectedFile = .SelectedItems(1)
            
                  
            'DoCmd.TransferText acExportDelim, "R2 General Import", "exportArtikelen", bestandsPad + "Export_Artikelen.csv", -1
            DoCmd.TransferText acImportDelim, "WV importeren", "TBL_UrenPerProject", selectedFile
            
            MsgBox "Importeren is voltooid."
        Else

        End If
    End With

    Set fDialog = Nothing
    
End Sub
 
Je gebruikt een importspecificatie; heb je die wel goed ingesteld? Je zou deze code eens kunnen proberen:
Code:
Private Sub Knop221_Click()
Dim fDialog As Object, varFile As Variant, SelectedFile As Variant
    
    Set fDialog = Application.FileDialog(3)
    With fDialog
        .AllowMultiSelect = False
        .Title = "Selecteer het bestand met opgehaalde uren"
        .InitialFileName = CreateObject("WScript.Shell").SpecialFolders("MyDocuments") & "\Downloads\"
        .Filters.Clear
        .Filters.Add "csv", "*.csv"
        .Filters.Add "Alles", "*.*"
        If .Show = True Then
            SelectedFile = .SelectedItems(1)
            DoCmd.TransferText acImportDelim, "Import", "Export_redcsv", SelectedFile, True
        End If
    End With
    
End Sub
Maar kijk dus in ieder geval ook naar je import specificatie.
 
Wow... Dank jullie wel voor de snelle ondersteuning.
Het was niet mijn bedoeling om niets meer te hoeven na te denken, maar vind het wel fijn dat jullie mij zover hebben kunnen helpen.
Het werkt bijna.
In de
Code:
DoCmd.TransferText acImportDelim, "Import", "Export_redcsv", SelectedFile, True[\code] krijg ik de volgende melding:

Fout 3625 tijdens uitvoering:
De specificatie Import voor het tekstbestand bestaat niet. U kunt deze specificatie niet gebruiken om te imorteren, exporteren of te koppelen.
 
En daarom​ vroeg ik dus of je wel een correcte import specificatie had :). Nu blijkt dus, dat je die niet hebt. Ofwel aanmaken, ofwel weglaten.

Code:
Private Sub Knop221_Click()
Dim fDialog As Object, varFile As Variant, SelectedFile As Variant
    
    Set fDialog = Application.FileDialog(3)
    With fDialog
        .AllowMultiSelect = False
        .Title = "Selecteer het bestand met opgehaalde uren"
        .InitialFileName = CreateObject("WScript.Shell").SpecialFolders("MyDocuments") & "\Downloads"
        .Filters.Clear
        .Filters.Add "csv", "*.csv"
        .Filters.Add "Alles", "*.*"
        If .Show = True Then
            SelectedFile = .SelectedItems(1)
            DoCmd.TransferText acImportDelim, , "Export_redcsv", SelectedFile, True
        End If
    End With
    
End Sub
 
Die vraag had ik over het hoofd gezien.
Ik moest het even uitzoeken hoe ik dit kon aanmaken, maar daar ben ik achter gekomen. Het werkt nu.

Heel erg bedankt allebei.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan