SystemtippDieser Artikel bezieht sich auf ein anderes Betriebssystem als das von Ihnen verwendete. Für Sie möglicherweise nicht relevante Artikelinhalte wurden deaktiviert.
Eine Microsoft Access 97-Version dieses Artikels finden Sie unter 181076
(http://support.microsoft.com/kb/181076/
)
.
Erweiterte: Erfordert Experten Codierung und Interoperabilität sowie Mehrbenutzerfähigkeiten.
Dieser Artikel bezieht sich ausschließlich auf eine Microsoft Access-Datenbank (.mdb).
Dieser Artikel veranschaulicht das Allgemeine Dialogfeld -Steuerelement verwenden, um verknüpfte Tabellen in Ihrer Datenbank zu aktualisieren. Das Common Dialog -Steuerelement ist mit Microsoft Office 2000 Developer Edition Tools verfügbar. Die Tabellen verknüpft werden können in einer oder mehreren Back-End-Datenbanken befinden.
Ein Beispiel für eine andere Methode zum Verknüpfen von Tabellen, die Microsoft Windows-Anwendung programming Interface (API) Funktionen verwendet, finden Sie in das Beispielprogramm Developer Solutions (Solutions9.mdb). Um Solutions9.mdb zu erhalten, folgendem Artikel der Microsoft Knowledge Base:
248674
(http://support.microsoft.com/kb/248674/EN-US/
)
ACC2000: Bestellungen und Developer Solutions Beispieldatenbanken im Microsoft Developer Network (MSDN)
Öffnen Sie die Solutions9.mdb-Datenbank, wählen Sie mehrere Datenbanken verwenden im Feld wählen eine Kategorie der Beispiele und klicken Sie auf Verknüpfen von Tabellen beim Start im Feld Wählen Sie eine Beispiel .
Microsoft bietet Programmierbeispiele für Abbildung nur ohne Gewährleistung oder konkludent. Dies umfasst, ist jedoch nicht beschränkt auf konkludenten Garantien der Handelsüblichkeit oder Eignung für einen bestimmten Zweck. Dieser Artikel setzt voraus, dass Sie mit der Programmiersprache, die Programmierungsbeispiele ist und mit den Tools, die zum Erstellen und Debuggen von Prozeduren verwendet werden vertraut sind. Microsoft Support-Technikern helfen Erläuterung die Funktionalität einer bestimmten Prozedur, Sie werden ändert jedoch nicht diese Beispiele bieten Funktionen hinzugefügt oder Verfahren, um Ihren Anforderungen entsprechend zu erstellen. Ein Programm, Teilen Datenbankentwurf hat die Tabellen in einer Datenbank in einem freigegebenen Netzwerkspeicherort (die Back-End-Datenbank), und alle seine Abfragen, Formulare, Berichte, Makros und Module in einer anderen Datenbank auf jedem Clientcomputer (Front-End-Datenbank). Die Front-End-Datenbank, die alle Ihre Tabellen mit Back-End-Datenbank verknüpft. Wenn die Back-End-Datenbank verschoben wird, treten Fehler in Ihrem Programm. Sie können das Programm erkennen, die Back-End-Datenbank-Datei am erwarteten Speicherort nicht vorhanden ist und fordert den Benutzer für den neuen Speicherort.
Das folgende Beispiel veranschaulicht das Verknüpfen der Tabellendaten in Ihrem Programm. Diese Methode verwendet ein Formular, die ein Benutzer öffnen können, um die Back-End-Tabellen verknüpfen und anderen optionalen Formular, das automatisch die Back-End-Verknüpfung überprüfen kann, wenn die Datenbank geöffnet wird.
Es wird vorausgesetzt, dass Sie das Microsoft Common Dialog -Steuerelement, verfügen, das mit Microsoft Office 2000 Developer Edition Tools verfügbar ist. Wenn Sie nicht dieses Steuerelement haben, überspringen Sie die Browse() -Funktion im Beispiel.
Hinweis : Wenn Sie das Allgemeine Dialogfeld -Steuerelement verwenden, und Sie das Datenbankprogramm verteilen möchten, müssen Sie dem Paket- und Weitergabe-Assistenten enthalten das allgemeine Dialogfeld-Steuerelement Datei Comdlg32.ocx und zugehörige unterstützende DLL mit den Setupdateien. Weitere Informationen zur Verwendung der Paket- und Weitergabe-Assistent finden Sie in den im Abschnitt "Informationsquellen" dieses Artikels aufgeführten Artikeln.
Methode zum Back-End-Datenbanktabellen erneut verknüpfen
Vorsicht : Wenn Sie die in diesem Beispiel beschriebenen Schritte ausführen, ändern Sie die Beispieldatenbank Nordwind.mdb. Sie sollten daher eine Sicherungskopie der Datei "Nordwind.mdb" erstellen und diese Schritte in einer Kopie der Datenbank ausführen.
Erstellen Sie eine neue leere Access-Datenbankdatei und nennen Sie es FrontEnd.mdb .
Im Menü Datei auf Externe Daten , und klicken Sie dann auf Tabellen verknüpfen .
Auswahl die Beispieldatenbank "Nordwind.mdb" wechseln Sie, und klicken Sie dann auf Verknüpfung . Klicken Sie im Dialogfeld Tabellen verknüpfen klicken Sie auf Alles markieren , und klicken Sie dann auf OK .
Erstellen Sie das folgende neue Formular auf einer Tabelle oder Abfrage in der Entwurfsansicht nicht basiert:
Formular: FrmNewDataFile
Textfeld:
Name: TxtFileName Breite: 3 "
Allgemeine Dialogfeld-Steuerelement:
Name: xDialog
Befehlsschaltfläche:
Name: CmdBrowse Beschriftung: Durchsuchen... Auf Click: =Browse()
Befehlsschaltfläche:
Name: CmdLinkNew Beschriftung: Aktualisieren links Auf Click: =Processtables()
Befehlsschaltfläche:
Name: CmdCancel Beschriftung: Abbrechen BeimKlicken: [Ereignisprozedur] Abbrechen: Ja
Klicken Sie im Menü Ansicht auf Code .
Geben oder fügen Sie die folgende Prozedur:
Private Sub cmdCancel_Click()
On Error GoTo Err_cmdCancel_Click
MsgBox "Link to new back-end cancelled", vbExclamation, "Cancel Refresh Link"
DoCmd.Close acForm, Me.Name
Exit_cmdCancel_Click:
Exit Sub
Err_cmdCancel_Click:
MsgBox Err.Description
Resume Exit_cmdCancel_Click
End Sub
Klicken Sie im Debuggen auf Kompilieren FrontEnd .
Speichern Sie das FrmNewDataFile-Formular und schließen Sie es.
Klicken Sie im Datenbankfenster auf Module und klicken Sie auf neu .
Im Menü Extras klicken Sie auf Verweise auf Microsoft DAO 3.6-Objektbibliothek , wenn es nicht bereits aktiviert ist, und klicken Sie dann auf OK .
Geben oder fügen Sie den folgenden Code:
Dim UnProcessed As New Collection
Public Function Browse()
' Prompts user for back-end database file name.
On Error GoTo Err_Browse
Dim strFilename As String
Dim oDialog As Object
Set oDialog = [Forms]![frmNewDatafile]!xDialog.Object
With oDialog ' Ask for new file location.
.DialogTitle = "Please Select New Data File"
.Filter = "Access Database(*.mdb;*.mda;*.mde;*.mdw)|" & _
"*.mdb; *.mda; *.mde; *.mdw|All(*.*)|*.*"
.FilterIndex = 1
.ShowOpen
If Len(.FileName) > 0 Then ' user responded, put selection into text box on form.
[Forms]![frmNewDatafile]![txtFileName] = .FileName
End If
End With
Exit_Browse:
Exit Function
Err_Browse:
MsgBox Err.Description
Resume Exit_Browse
End Function
Public Sub AppendTables()
Dim db As DAO.Database, x As Variant
Dim strTest As String
' Add names of all table with invalid links to the Unprocessed Collection.
Set db = CurrentDb
ClearAll
For Each x In db.TableDefs
If Len(x.Connect) > 1 And Len(Dir(Mid(x.Connect, 11))) = 0 Then
' connect string exists, but file does not
UnProcessed.Add Item:=x.Name, Key:=x.Name
End If
Next
End Sub
Public Function ProcessTables()
Dim strTest As String
On Error GoTo Err_BeginLink
' Call procedure to add all tables with broken links into a collection.
AppendTables
' Test for existence of file name\directory selected in Common Dialog Control.
strTest = Dir([Forms]![frmNewDatafile]![txtFileName])
On Error GoTo Err_BeginLink
If Len(strTest) = 0 Then ' File not found.
MsgBox "File not found. Please try again.", vbExclamation, "Link to new data file"
Exit Function
End If
' Begin relinking tables.
Relinktables (strTest)
' Check to see if all tables have been relinked.
CheckifComplete
DoCmd.Echo True, "Done"
If UnProcessed.Count < 1 Then
MsgBox "Linking to new back-end data file was successful."
Else
MsgBox "Not All back-end tables were successfully relinked."
End If
DoCmd.Close acForm, [Forms]![frmNewDatafile].Name
Exit_BeginLink:
DoCmd.Echo True
Exit Function
Err_BeginLink:
Debug.Print Err.Number
If Err.Number = 457 Then
ClearAll
Resume Next
End If
MsgBox Err.Number & ": " & Err.Description
Resume Exit_BeginLink
End Function
Public Sub ClearAll()
Dim x
' Clear any and all names from the Unprocessed Collection.
For Each x In UnProcessed
UnProcessed.Remove (x)
Next
End Sub
Public Function Relinktables(strFilename As String)
Dim dbbackend As DAO.Database, dblocal As DAO.Database, ws As Workspace, x, y
Dim tdlocal As DAO.TableDef
On Error GoTo Err_Relink
Set dbbackend = DBEngine(0).OpenDatabase(strFilename)
Set dblocal = CurrentDb
' If the local linked table name is found in the back-end database
' we're looking at, Recreate & Refresh its connect string, and then
' remove its name from the Unprocessed collection.
For Each x In UnProcessed
If Len(dblocal.TableDefs(x).Connect) > 0 Then
For Each y In dbbackend.TableDefs
If y.Name = x Then
Set tdlocal = dblocal.TableDefs(x)
tdlocal.Connect = ";DATABASE=" & _
Trim([Forms]![frmNewDatafile]![txtFileName])
tdlocal.RefreshLink
UnProcessed.Remove (x)
End If
Next
End If
Next
Exit_Relink:
Exit Function
Err_Relink:
MsgBox Err.Number & ": " & Err.Description
Resume Exit_Relink
End Function
Public Sub CheckifComplete()
Dim strTest As String, y As String, notfound As String, x
On Error GoTo Err_BeginLink
' If there are any names left in the unprocessed collection,
' then continue.
If UnProcessed.Count > 0 Then
For Each x In UnProcessed
notfound = notfound & x & Chr(13)
Next
' List the tables that have not yet been relinked.
y = MsgBox("The following tables were not found in " & _
Chr(13) & Chr(13) & [Forms]![frmNewDatafile]!txtFileName _
& ":" & Chr(13) & Chr(13) & notfound & Chr(13) & _
"Select another database that contains the additional tables?", _
vbQuestion + vbYesNo, "Tables not found")
If y = vbNo Then
Exit Sub
End If
' Bring the Common Dialog Control back up.
Browse
strTest = Dir([Forms]![frmNewDatafile]![txtFileName])
If Len(strTest) = 0 Then ' File not found.
MsgBox "File not found. Please try again.", vbExclamation, _
"Link to new data file"
Exit Sub
End If
Debug.Print "Break"
Relinktables (strTest)
Else
Exit Sub
End If
CheckifComplete
Exit_BeginLink:
DoCmd.Echo True ' Just in case of error jump.
DoCmd.Hourglass False
Exit Sub
Err_BeginLink:
Debug.Print Err.Number
If Err.Number = 457 Then
ClearAll
Resume Next
End If
MsgBox Err.Number & ": " & Err.Description
Resume Exit_BeginLink
End Sub
Klicken Sie im Debuggen auf Kompilieren FrontEnd .
Speichern Sie das Modul als RelinkCode , und schließen Sie es dann.
Benennen Sie die Beispieldatenbank oder verschieben Sie es in einen anderen Ordner auf Ihrer Festplatte so dass die verknüpften Tabellen in FrontEnd.mdb müssen aktualisiert werden.
Öffnen Sie das Formular FrmNewDataFile, und klicken Sie auf die Schaltfläche Durchsuchen .
Klicken Sie im Dialogfeld Bitte wählen Sie neue Datendatei suchen Sie Nordwind.mdb in einem neuen Ordner, und klicken Sie dann auf Öffnen .
Beachten Sie, dass der Pfad und Dateiname der Datenbank in das Textfeld auf dem Formular angezeigt wird.
Klicken Sie auf das Formular die Schaltfläche Verknüpfungen aktualisieren .
Beachten Sie, dass Sie die folgende Meldung angezeigt, beim Beenden der Prozedur wird:
Verknüpfung mit neue Back-End-Daten-Datei war erfolgreich.
Erstellen eines Startformulars zum Überprüfen von verknüpfter Tabellen
Um den Verknüpfungen zu Back-End-Tabellen automatisch jedes Mal überprüfen, dass Sie die FrontEnd.mdb-Datenbank öffnen, können Sie ein ausgeblendetes Formular für diesen Zweck erstellen, indem Sie die folgenden Schritte:
Erstellen Sie ein neues Formular, das nicht auf einer Tabelle oder Abfrage basiert, in der Entwurfsansicht.
Klicken Sie im Menü Ansicht auf Code .
Geben Sie die folgende Prozedur ausgeführt werden, wenn das Formular wird geöffnet:
Private Sub Form_Open(Cancel As Integer)
' Tests a linked table for valid back-end.
On Error GoTo Err_Form_Open
Dim strTest As String, db As DAO.Database
Dim td As DAO.TableDef
Set db = CurrentDb
For Each td In db.TableDefs
If Len(td.Connect) > 0 Then ' Is a linked table.
On Error Resume Next ' Turn off error trap.
strTest = Dir(Mid(td.Connect, 11)) ' Check file name.
On Error GoTo Err_Form_Open ' Turn on error trap.
If Len(strTest) = 0 Then ' No matching file.
If MsgBox("Couldn't find the back-end file " & _
Mid(td.Connect, 11) & ". Please choose new data file.", _
vbExclamation + vbOKCancel + vbDefaultButton1, _
"Can't find backend data file.") = vbOK Then
DoCmd.OpenForm "frmNewDataFile" ' Open prompt form.
DoCmd.Close acForm, Me.Name
Exit Sub ' to refresh links
Else
MsgBox "The linked tables can't find their source. " & _
"Please log onto network and restart the application."
End If
End If
End If
Next ' Loop to next tabledef.
DoCmd.Close acForm, Me.Name
Exit_Form_Open:
Exit Sub
Err_Form_Open:
MsgBox Err.Number & ": " & Error.Description
Resume Exit_Form_Open
End Sub
Klicken Sie im Debuggen auf Kompilieren FrontEnd .
Speichern Sie das Formular als FrmCheckLink, und schließen Sie es dann.
Um FrmCheckLink als das Startformular auf Tools im Menü klicken Sie auf Start , wählen Sie FrmCheckLink in der Liste Formular/Seite anzeigen und klicken Sie dann auf OK .
Um FrmCheckLink ein ausgeblendetes Formular machen, klicken Sie mit der rechten Maustaste auf FrmCheckLink im Datenbankfenster, klicken Sie im Kontextmenü auf Eigenschaften , aktivieren Sie das Kontrollkästchen ausgeblendet in das Dialogfeld FrmCheckLink Eigenschaften und klicken Sie dann auf OK .
Verschieben Sie die Beispieldatenbank in einen anderen Ordner auf Ihrer Festplatte, sodass die verknüpften Tabellen in FrontEnd.mdb aktualisiert werden müssen.
Schließen und öffnen Sie FrontEnd.mdb erneut.
Beachten Sie , dass Ihnen jetzt sinngemäß die folgende Fehlermeldung angezeigt wird
Die Back-End-Datei-database file kann nicht gefunden werden. Wählen Sie neue Datendatei ein.
wobei database file der Pfad und Dateiname der Back-End-Datenbank ist.
Wenn Sie auf OK klicken, wird das Formular FrmNewDataFile Sie zum Auswählen einer neuen Back-End-Datenbank wird geöffnet und anschließend aktualisiert Ihre Tabellenverknüpfungen. Wenn Sie auf Abbrechen klicken, wird sinngemäß die folgende Fehlermeldung:
Die verknüpften Tabellen können Ihre Datenquelle nicht finden. Bitte melden Sie sich Netzwerk, und starten Sie das Programm neu.
Weitere Informationen zum Anpassen der im Beispiel für aktualisieren verknüpfte Tabellen in diesem Beispiel Developer Solutions Programm (Solutions9.mdb), klicken Sie auf die Artikelnummer unten klicken, um der Microsoft Knowledge Base:
154397
(http://support.microsoft.com/kb/154397/EN-US/
)
ADT/ODE How to Modify Modul RefreshTableLinks in Solutions.mdb
Weitere Informationen der Paket- und Weitergabe-Assistent finden Sie in der Microsoft Knowledge Base:
240956
(http://support.microsoft.com/kb/240956/EN-US/
)
MOD2000: Paket- und Weitergabe-Assistent jetzt zum Erstellen von einer verteilbare Anwendungs
236143
(http://support.microsoft.com/kb/236143/EN-US/
)
MOD2000: How to Start der Paket- und Weitergabe-Assistent
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 209862
(http://support.microsoft.com/kb/209862/en-us/
)
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Waren diese Informationen hilfreich?
Ja
Nein
Etwas
Wie hoch war der Aufwand für Sie persönlich, um diesen Artikel zu verwenden?
Sehr gering
Gering
Mittel
Hoch
Sehr hoch
Sagen Sie uns bitte, wie wir diese Informationen noch verbessern können
Danke! Dieses Feedback hilft uns dabei, die Supportartikel weiter zu verbessern. Weitere Informationen finden Sie auf der Hilfe und Support-Startseite.