Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Daten von Access Excel nach Access überschreiben

Daten von Access Excel nach Access überschreiben
09.03.2018 10:37:22
Access
Hallo zusammen,
ich würde gerne mehrere Zeilen von Excel nach Access übertragen.
Ich habe folgenden Code geschrieben:

Set Db = OpenDatabase(DbPath)
Set rs = Db.OpenRecordset(ZielTab)
Name_Spalte = Range("A1").Value
Do Until Name_Spalte = "Vorgang"
Name_Spalte = Cells(1, 1 + Spalte_Vorgang).Value
Spalte_Vorgang = Spalte_Vorgang + 1
Loop
Do Until IsEmpty(Cells(1 + Anzahl_Vorgaenge, Spalte_Vorgang))
Anzahl_Vorgaenge = Anzahl_Vorgaenge + 1
rs.AddNew
rs!Vorgang = Cells(1 + Anzahl_Vorgaenge, Spalte_Vorgang)
rs!Ressource = Cells(1 + Anzahl_Vorgaenge, Spalte_Vorgang + 1)
rs.Update
Loop
Zur Begriffserklärung:
ZielTab = "tbl_Vorgaenge_Excel" = Name der Tabelle in Access
Vorgang = Name einer Spalte in Access
Ressoruce = Name einer Spalte in Access.
DbPath = eine Globale Konstante, der Pfad, wo die Access Datenbank liegt
Ich kenne mich leider noch zu wenig aus, um zu erkennen, wo der Fehler liegt.
Ich würde mich riesig freuen, wenn mir jemand helfen könnte.
Das ganze muss mit VBA passieren, da es später mehrere Benutzer dieser Datei gibt, die nur auf eine Access zugreifen und ich gerne hätte, dass keiner außer ich Zugriff auf die Access Datenbank hat.
Die Datei läuft durch, ohne eine Fehlermeldung zu zeigen, jedoch kommt auch nichts in Access an.
Liebe Grüße
Ein Access Neuling
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten von Access Excel nach Access überschreiben
09.03.2018 12:52:27
Access
Hallo Johannes,
das einzige, was ich an Deinem Code als fehlerhaft sehe, ist der Umgang mit der Variablen Anzahl_Vorgaenge in der Do-Schleife. Die würde ich eher wie folgt machen:
Anzahl_Vorgaenge = 1
Do Until IsEmpty(Cells(Anzahl_Vorgaenge, Spalte_Vorgang))
rs.AddNew
rs!Vorgang = Cells(Anzahl_Vorgaenge, Spalte_Vorgang)
rs!Ressource = Cells(Anzahl_Vorgaenge, Spalte_Vorgang + 1)
rs.Update
Anzahl_Vorgaenge = Anzahl_Vorgaenge + 1
Loop
Ansonsten funktioniert der Code bei mir einwandfrei. Ich weiß allerdings nicht, was außerhalb des geposteten Code-Schnipsels passiert. Z.B. erhält die Variable Anzahl_Vorgaenge einen Wert? Wie sind die Variablen deklariert?
Mein kompletter, funktionierender Code lautet wie folgt:
Sub Access()
Dim DbPath As String, Zieltab As String, Name_Spalte As String
Dim Spalte_Vorgang As Long, Anzahl_Vorgaenge As Long
Dim db As DAO.Database
Dim rs As DAO.Recordset
DbPath = "D:\Test\Datenbank.mdb"
Zieltab = "tbl_Vorgaenge_Excel"
Set db = OpenDatabase(DbPath)
Set rs = db.OpenRecordset(Zieltab)
Name_Spalte = Range("A1").Value
Spalte_Vorgang = 0
Do Until Name_Spalte = "Vorgang"
Name_Spalte = Cells(1, 1 + Spalte_Vorgang).Value
Spalte_Vorgang = Spalte_Vorgang + 1
Loop
Anzahl_Vorgaenge = 1
Do Until IsEmpty(Cells(Anzahl_Vorgaenge, Spalte_Vorgang))
rs.AddNew
rs!Vorgang = Cells(Anzahl_Vorgaenge, Spalte_Vorgang)
rs!Ressource = Cells(Anzahl_Vorgaenge, Spalte_Vorgang + 1)
rs.Update
Anzahl_Vorgaenge = Anzahl_Vorgaenge + 1
Loop
End Sub

Gruß
Robert
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige