Thema Datum  Von Nutzer Rating
Antwort
20.03.2018 08:54:32 Markus Hofelich
*****
NotSolved
20.03.2018 08:56:39 Markus Hofelich
NotSolved
20.03.2018 09:52:30 Gast76886
NotSolved
20.03.2018 09:56:45 Gast90342
NotSolved
20.03.2018 11:59:04 SJ
NotSolved
Blau Access VBA - CSV Datei auf Wert überprüfen und importieren
22.03.2018 09:01:20 SJ
NotSolved

Ansicht des Beitrags:
Von:
SJ
Datum:
22.03.2018 09:01:20
Views:
626
Rating: Antwort:
  Ja
Thema:
Access VBA - CSV Datei auf Wert überprüfen und importieren

Wow, zwei Tage ohne Rückmeldung, so macht das helfen richtig Laune.

Naja, hier noch das Makro zu zuvor genanntem Ergebnis:

Option Compare Database
Option Explicit

'//Verweise
'//Microsoft Scripting Runtime

Public Sub testImport()
    '//Hier die Funktion aufrufen und den Dateipfad angeben
    Call importCSV("C:\Users\userXY\Desktop\Beispiel.csv")
End Sub

Public Sub importCSV(ByVal path As String)
    Dim fso As New FileSystemObject
    
    If Not fso.FileExists(path) Then
        MsgBox "Datei existiert nicht.", vbInformation
        GoTo cleanUp
    End If
    
    Dim db As DAO.Database
    Dim ts As TextStream
    Dim arr() As String, arrP() As String
    Dim sTablename As String
    Dim l As Long, m As Long
    Dim sSqlV As String, sSql As String
    
    sTablename = fso.GetBaseName(path)
    Set db = CurrentDb
    Call createTable(db, sTablename)
    
    Set ts = fso.OpenTextFile(path, ForReading, False)
    sSqlV = "INSERT INTO " & sTablename & "(Gruppennummer, Programmnummer, Programmname) VALUES ('%GNUMMER%', '%PNUMMER%', '%PNAME%');"
    l = 1
    
    Do While Not ts.AtEndOfStream
        arrP() = arr()
        arr() = Split(ts.ReadLine, ";")
        If IsNumeric(arr(0)) Then
            For l = 1 To UBound(arr())
                sSql = Replace(sSqlV, "%GNUMMER%", arr(0))
                sSql = Replace(sSql, "%PNUMMER%", arr(l))
                sSql = Replace(sSql, "%PNAME%", arrP(l))
                db.Execute sSql
                m = m + 1
            Next l
        End If
    Loop
    
    MsgBox "Es wurden " & m & " Einträge in die Tabelle '" & sTablename & "' eingefügt.", vbInformation
    
cleanUp:
    If Not ts Is Nothing Then
        ts.Close
        Set ts = Nothing
    End If
    If Not db Is Nothing Then Set db = Nothing
    If Not fso Is Nothing Then Set fso = Nothing
End Sub

Private Sub createTable(ByRef db As DAO.Database, ByVal tablename As String)
    On Error Resume Next
    db.TableDefs.Delete tablename
    On Error GoTo 0
    
    Dim tdf As TableDef
    Dim fld As Field
    Dim v As Variant
    Dim colFields As New Collection
    
    With colFields
        .Add "Gruppennummer"
        .Add "Programmnummer"
        .Add "Programmname"
    End With
    
    Set tdf = db.CreateTableDef(tablename)
    
    For Each v In colFields
        Set fld = tdf.CreateField(v, dbText, 255)
        With tdf.Fields
            .Append fld
            .Refresh
        End With
        Set fld = Nothing
    Next v
    
    With db.TableDefs
        .Append tdf
        .Refresh
    End With
    
    Set tdf = Nothing
    Set colFields = Nothing
End Sub

Viele Grüße

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
20.03.2018 08:54:32 Markus Hofelich
*****
NotSolved
20.03.2018 08:56:39 Markus Hofelich
NotSolved
20.03.2018 09:52:30 Gast76886
NotSolved
20.03.2018 09:56:45 Gast90342
NotSolved
20.03.2018 11:59:04 SJ
NotSolved
Blau Access VBA - CSV Datei auf Wert überprüfen und importieren
22.03.2018 09:01:20 SJ
NotSolved