Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!
Zitat von: Doming am Juni 20, 2025, 08:05:03Sieht aus als würde es wie gewünscht laufen.In deiner IstVorhanden-Prozedur könntest/solltest du noch auf den Typ des Objektes prüfen. Der Objektname allein ist nicht eindeutig.
Zitat von: Doming am Juni 20, 2025, 08:05:03Schön wäre es noch, wenn er mir nicht nur die Formulare importiert, sondern auch die Tabellenverknüpfungen.Du kannst die knüpften Tabellen mittels DAO.Database.CreateTableDef erstellen. Die erforderlichen Informationen sollten in der MSysObjects-Tabelle vorhanden sein (siehe z.B. Connect, ForeignName).
Private Function HolTabelle(Tabelle As String) As Boolean
On Error GoTo Fehler
Dim QuellDb As String
Select Case Tabelle
Case "tblTabelle1", "tblTabelle2": QuellDb = "C:\Daten\BackEnd1.accdb"
Case "tblTabelle3": QuellDb = "C:\Daten\BackEnd2.accdb"
End Select
DoCmd.TransferDatabase acLink, "Microsoft Access", QuellDb, acTable, Tabelle, Tabelle
Fehler:
HolTabelle = Err = 0
If Err > 0 Then Debug.Print "Fehler HolTabelle: " & Tabelle, Err.Number, Err.Description
End Function
ZitatSchön wäre es noch, wenn er mir nicht nur die Formulare importiert, sondern auch die Tabellenverknüpfungen.Zuerst dachte ich, du willst wiederverwendbare Formulare bzw. Codemodule exportieren.
'<codelib>
' <file>usability/OptionManagerSetup.bas</file>
' <use>usability/OptionManager.cls</use>
' <ref><name>VBIDE</name><major>5</major><minor>3</minor><guid>{0002E157-0000-0000-C000-000000000046}</guid></ref>
' <execute>OptionManagerSetup_SetupTable()</execute>
' <execute>OptionManagerSetup_CreateHelperModule()</execute>
' <execute>OptionManagerSetup_RemoveSelf()</execute>
'</codelib>
Über die execute-Blöcke werden Prozeduren ausgeführt, die z. B. in diesem Fall eine Tabelle statt einer Verknüpfung erstellen.Public Sub AllesDa()
IstVorhanden "tabelle1"
IstVorhanden "tabelle2"
IstVorhanden "frmformular1"
IstVorhanden "frmformular2"
IstVorhanden "frmformular3"
End Sub
'-----------------------------------------------------------------------
Private Function IstVorhanden(SuchName As String) As Boolean
On Error GoTo Fehler
If DCount("[Name]", "MSysObjects", "[Name] = '" & SuchName & "'") = 1 Then
IstVorhanden = True
End If
If IstVorhanden Then
Debug.Print SuchName & " ist vorhanden"
Else
If Left(SuchName, 3) = "frm" Then
If Not HolFormular(SuchName) Then
Debug.Print "Ich habe Probleme beim Import von " & SuchName
Else
Debug.Print SuchName & " ist jetzt vorhanden!"
End If
Else
Debug.Print SuchName & " ist NICHT vorhanden"
End If
End If
Exit Function
Fehler:
Debug.Print Now, SuchName, Err.Number, Err.Description
End Function
'-----------------------------------------------------------------------
Private Function HolFormular(FName As String) As Boolean
Dim QuellDatei As String
QuellDatei = "C:\Entwicklung\Module\" & FName & ".txt"
If Dir(QuellDatei) <> "" Then
Application.LoadFromText acForm, FName, QuellDatei
DoEvents
HolFormular = True
Else
Debug.Print "Ich finde das Formular " & FName & " nicht im Module-Verzeichnis"
End If
End Function
Sieht aus als würde es wie gewünscht laufen.Zitat von: Doming am Juni 19, 2025, 12:56:08Was ist da mit ,,Seite" gemeint? Ich vermute doch, dass es sich um den Datensatz handelt, oder?mitnichten. Access verwaltet den Speicher in Seiten (Pages) und u.U. wird eine ganze Seite für den schreibenden Zugriff gesperrt.