PDA

Vollständige Version anzeigen : Datenimport


e9janna
23.01.2008, 12:24
Hallo,

habe eine Datenbank die aus zwei Tabellen besteht. Diese Tabellen wurden aus einer ODBC Database importiert. Besteht eine Möglichkeit, dass Access diese Daten bei jedem Start der Datenbank aktualisiert?

Vielen Dank für Eure Hilfe!!!

Bracki
23.01.2008, 12:28
Hallo,

versuche doch einfach diese zwei Tabellen zu verknüpfen und nicht zu importieren!

peterffw
23.01.2008, 12:38
Hi,

mit folgender Prozedur kannst Du die Tabellen mit einer ODBC-Quelle verknüpfen!!

' Verknüpfungen mit den einer ODBC-Datenquelle erstellen

Const ODBCConnect = "ODBC;DSN=Personal_ODBC;DATABASE=dbpersonal;UID=sa;PWD={};"

' Lokale Datenbank (oder Access CurrentDB()
'Set db = DBEngine(0).OpenDatabase("F:\DB1.MDB")
Set DB = CurrentDb


strTableName = "mitStamm"
' Prüfen ob die Aufbautabelle bereits vorhanden ist - wenn ja, wird die Tabelle gelöscht
If DCount("*", "Msysobjects", "Name='" & strTableName & "'") <> 0 Then
DoCmd.DeleteObject acTable, strTableName
End If

strTableName = "FibuSS"
' Prüfen ob die Aufbautabelle bereits vorhanden ist - wenn ja, wird die Tabelle gelöscht
If DCount("*", "Msysobjects", "Name='" & strTableName & "'") <> 0 Then
DoCmd.DeleteObject acTable, strTableName
End If

' ODBC-Datenbank in Jet öffnen
'Set dbsODBC = DBEngine.OpenDatabase("DSNNAME", dbDriverNoPrompt, True, ODBCConnect)
Set dbsODBC = DBEngine.OpenDatabase("", dbDriverNoPrompt, True, ODBCConnect)
dbsODBC.TableDefs.Refresh
' Alle Tabellen verknüpfen
For Each tdfODBC In dbsODBC.TableDefs
' Hier entfällt dbo. ggf. "." durch "_" via Replace ersetzen
strLocalName = Mid(tdfODBC.Name, InStr(1, tdfODBC.Name, ".") + 1)
If strLocalName = "MitStamm" Or strLocalName = "fibuss" Then
Set tdf = DB.CreateTableDef(strLocalName, 0&, tdfODBC.Name, dbsODBC.Connect)
DB.TableDefs.Append tdf
End If
Next tdfODBC
DB.TableDefs.Refresh
dbsODBC.Close
Set dbsODBC = Nothing



Servus
Peter

e9janna
23.01.2008, 13:27
Hallo,

vielen Dank für den Quelltext, aber wie muss ich den einbinden?

Ich habe noch nie mit einem Quelltext gearbeitet!

Bracki
23.01.2008, 13:47
Dann versuche es vielleicht doch über Tabelle "verknüpfen".

Datei->Externe Daten->Tabellen verknüpfen

Bei Dateityp suchst Du Dir die ODBC-Datenbanken raus und musst dann eben Deine Datenquellen auswählen.

e9janna
23.01.2008, 13:51
Habe ich schon versucht! Funktioniert leider nicht, weil die Daten auf einem langsamen Server liegen und der Computer von mir dann immer abstürzt.

Bracki
23.01.2008, 13:57
Dann schaue mal unter "Optionen" -> "weitere". Dort können verschiedene Angaben geändert werden z.B. Timeout. Musste einfach mal probieren.

e9janna
23.01.2008, 14:31
Da kommt jetzt immer die Meldung "Dieses Recordset kann nicht aktualisiert werden" kann mir jemand sagen was ich tun kann damit es funktioniert???

Vielen Dank

Louisleon
23.01.2008, 17:28
Hallo,

Da kommt jetzt immer die Meldung "Dieses Recordset kann nicht aktualisiert werden" kann mir jemand sagen was ich tun kann damit es funktioniert???


ich vermute mal das die Glaskugeln der anderen genauso angelaufen ist wie meine. ;)
Wo kommt die Meldung, bei welcher Aktion/Code (Recordset)?
Wenn Du keine ODBC-Verbindung manuell erstellen kannst, wird es wohl auch nicht über VBA gehen. Prüf doch mal die Server-Verbindung.
weil die Daten auf einem langsamen Server liegen und der Computer von mir dann immer abstürzt.
Das sollte bedenklich sein, den ein Absturz (ich weiß ja nicht was Du darunter verstehst) deutet auf schwerwiegendere Probleme hin, da normalerweise bei einer erfolglosen Verbindung die Jet-Engine zurück meldet!

Gruß

LL