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
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
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
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
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

