Access Tabelle aus Excel leeren

  • Excel

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Kasi.

    Access Tabelle aus Excel leeren

    Hallo zusammen.
    Ich hab ein Exceldokument wo ich Daten über VBA in eine Access DB schiebe. Das klappt auch alles wunderbar.
    Jetzt müsste ich für ein anderes Projekt aber die Access Tabelle vorher leeren bevor ich dort neue Daten ablege.
    Leider konnte ich dazu nichts finden.
    Ich hoffe das ihr mir dort weiterhelfen könnt.
    Das wäre der Code

    Visual Basic-Quellcode

    1. Sub ADOFromExcelToAccess2()
    2. Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long
    3. Set cn = New ADODB.Connection
    4. cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & _
    5. "Data Source=D:\Test\test.mdb;"
    6. Set rs = New ADODB.Recordset
    7. rs.Open "2", cn, adOpenKeyset, adLockOptimistic, adCmdTable
    8. r = 5 ' Zeile ab der auf Inhalt geprüft werden soll
    9. Do While Len(Range("B" & r).Formula) > 0
    10. With rs
    11. .AddNew ' neuen Datensatz erstellen
    12. .Fields("Datum") = Range("R" & r).Value
    13. .Fields("Liefernummer") = Range("B" & r).Value
    14. .Fields("Sortierung") = Range("C" & r).Value
    15. .Fields("Lieferant") = Range("D" & r).Value
    16. .Fields("Sortier Linie") = Range("E" & r).Value
    17. .Fields("Von") = Range("F" & r).Value
    18. .Fields("Bis") = Range("G" & r).Value
    19. .Fields("Abfall1") = Range("L" & r).Value
    20. .Fields("Abfall2") = Range("M" & r).Value
    21. .Fields("Abfall3") = Range("N" & r).Value
    22. .Fields("Abfall4") = Range("O" & r).Value
    23. .Fields("Abfall5") = Range("P" & r).Value
    24. .Fields("Abfall6") = Range("Q" & r).Value
    25. '.Fields("Abfall7") = Range("R" & r).Value
    26. '.Fields("Abfall8") = Range("S" & r).Value
    27. '.Fields("Abfall9") = Range("T" & r).Value
    28. '.Fields("Abfall10") = Range("U" & r).Value
    29. .Fields("Schicht") = Range("S" & r).Value
    30. ' weitere spalten hier hinzufügen
    31. .Update
    32. End With
    33. r = r + 1 ' nächste spalte
    34. Loop
    35. rs.Close
    36. Set rs = Nothing
    37. cn.Close
    38. Set cn = Nothing
    39. If MsgBox("Daten wurden in DB abgelegt", , "!!!Information!!!") Then Exit Sub
    40. End Sub
    Hi,
    versuche es so...

    in Sql natürlich den Tabellen namen ändern.

    Visual Basic-Quellcode

    1. Sub ADODelete()
    2. Dim cn As ADODB.Connection
    3. Dim cmd As ADODB.Command
    4. Dim Sql As String
    5. Set cn = New ADODB.Connection
    6. cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & _
    7. "Data Source=D:\Test\test.mdb;"
    8. Set cmd = New ADODB.Command
    9. Sql = "Delete * From tbl_1"
    10. cmd.CommandText = Sql
    11. cmd.ActiveConnection = cn
    12. cmd.Execute
    13. cn.Close
    14. Set cn = Nothing
    15. End Sub