Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Excel Daten in Access-Tabelle importieren (für schon bestehende Datensätze)





Frage

Hallo ihr, mein Problem: der User soll seine Datensätze, die bereits in der Datenbank stehen updaten können (durch import aus einer Excel-File). Bisher können nur Daten importiert werden, die noch nicht in der DB vorkommen (da sonst Schlüsselkonflikte entstehen!!) ausserdem soll aus der Excel-File nur bestimmt Tabellen importiert werden... ich hab bis jetzt versucht dafür ein makro zu schreiben, allerdings sind meine Kenntnisse in Visual Studio sehr begrenzt!!!! Kann mir jemand weiter helfen??? Wär wirklich wichtig und dringend.... ihr würdet mir seeeeehhhhrrrrr helfen !! ;-) Vielen Dank...

Antwort 1 von Teddy7

Hallo Petra !
Sowas müßte man mit VBA-Programmierung lösen.
Damit kann man aus Access heraus Excel öffnen, jedes einzelne Feld ansprechen, in der(den) Access-Tabellen über den Schlüsselbegriff nach dem Datensatz suchen und ebenjenen ggf. ändern.

Ich könnte Dir dazu ein allgemeines Code-Beispiel posten, aber wenn Du keine Ahnung von VBA hast wäre das vergebliche Mühe.
Deshalb erst mal die Frage, ob Du damit was anfangen kannst.
Stehen die einzulesenden Daten immer in der gleichen Exceltabelle, oder soll ein Unterverzeichnis nach neu hinzugekommenen Dateien durchforstet werden, die dann verarbeitet werden sollen.
Man kann da vieles (automatisch) machen.
Gruß
Teddy

Antwort 2 von FlicFlash

Ich habe leider kein Access mehr, da ich mit Mac arbeite, aber war da nicht eine Möglichkeit die Excel-Datei zu verknüpfen?

Die Änderungen werden dann automatisch in Acces aktualisiert?

Gruß

Lea

Antwort 3 von Felice

HI Teddy7 kannst du mal dein VBA Code bitte Posten, ich könnte ihn nämlich gut gebrauchen. Danke

Antwort 4 von Teddy7

Dim objExcel As Excel.Application
dim xwei as string
dim xfeld as string
dim xlin as integer
Dim ttab1 As DAO.Recordset
Dim ktab1 As String
Set ttab1 = CurrentDb.OpenRecordset("Select * from tblKunde", dbOpenDynaset)
Set objExcel = New Excel.Application
objExcel.Visible = True
objExcel.Workbooks.Open ("C:\test.xls")
xwei = objExcel.ActiveWorkbook.Sheets(1).Select
ttab1.MoveFirst
Do Until ttab1.EOF
xlin = xlin + 1
objExcel.Cells(xlin, 1) = ttab1!KundenNr
objExcel.Cells(xlin, 2) = ttab1!KdName
.....
.....
ttab1.MoveNext
Loop

objExcel.Workbooks.Close
Set objExcel = Nothing
ttab1.close
set ttab1 = nothing
///////////////
Verweis auf DAO und auf Excel nicht vergessen
Viel Spaß
///////////////
Gruß
Teddy

Antwort 5 von Teddy7

ups - das war der Export. Hier kommt der Import:

Dim objExcel As Excel.Application
dim xwei as string
dim xfeld as string
dim xlin as integer
Dim ttab1 As DAO.Recordset
Dim ktab1 As String
Set ttab1 = CurrentDb.OpenRecordset("Select * from tblKunde", dbOpenDynaset)
Set objExcel = New Excel.Application
objExcel.Visible = True
objExcel.Workbooks.Open ("C:\test.xls")
xwei = objExcel.ActiveWorkbook.Sheets(1).Select
xfeld = objExcel.Cells(xlin, 1).value
ktab1 = "KundenNr = " & xfeld
ttab1.FindFirst ktab1
ttab1.edit
ttab1!KdName = objExcel.Cells(1, 1).value
ttab1.update
.....
...usw..

objExcel.Workbooks.Close
Set objExcel = Nothing
ttab1.close
set ttab1 = nothing
///////////////
Verweis auf DAO und auf Excel nicht vergessen
///////////////
Gruß
Teddy