Formulare per VBA austauschen

Hallo,

ich habe folgendes Problem, ich habe eine Datenbankanwendung, in der ich mit 6 Replikaten arbeite, die Datenbanken sind in Formulardatenbanken und Tabellendatenbanken getrennt.

Da jeder User sein, andere Pfade zu seiner (Tabellen sind verknüpft) Tabellendatenbank hat, kann ich bei einer Änderung einzelner Formular, leider nicht die Formulardatenbank austauschen, weil dann die verknüpften Pfade zu den Tabellen nicht mehr stimmen.

Derzeit entwickle ich noch relativ viel, es wird also immer wieder vorkommen, daß ich mehrere Formulare ersetzen muß. Derzeit mache ich das manuell, öffne meine Entwicklerdatenbank, dann die Formulardatenbank des ersten Replikats, ziehe mein geändertes Formular rüber, gebe dengleichen Namen für das Formular ein, lasse überschreiben und habe fertig für den ersten von sechs.

Was mir vorschwebt ist folgende Lösung, ich möchte eine Routine schreiben, in der ich den Namen des geänderten Formulares eingebe, da diese mittlerweile auch in einer Tabelle erfasst sind, könnte ich die auch per Kombinationsfeld auswählen, und dann der bisher manuelle Vorgang per Programm in allen 6 Datenbanken ausgeführt wird. Damit wäre mir schon geholfen.

Die genialste Lösung wäre, wenn das Programm anders arbeiten würde, es stellt fest welche Formulare ich seit Datum xx.xx.xx verändert habe, zeigt die an, fragt welche (diesen Schritt kriege ich hin), ich an die 6 übergeben will (manchmal ist ja ein Formular noch fehlerhaft) und macht dann diesen Schritt.

Danke für jeden Hinweis

Peter

Hallo Peter,

eine direkte Lösung für dein Problem hab ich nicht, aber mal ein Paar Methoden, wo du ansetzten kannst:

Da jeder User sein, andere Pfade zu seiner (Tabellen sind
verknüpft) Tabellendatenbank hat, kann ich bei einer Änderung
einzelner Formular, leider nicht die Formulardatenbank
austauschen, weil dann die verknüpften Pfade zu den Tabellen
nicht mehr stimmen.

vielleicht doch -
Tabellen wieder einbinden: http://www.donkarl.com/FAQ/FAQ3TAbfragen.htm#3.1

und hier genau das gegenteil von dem was du tun möchtest:
Objekt in anderer DB löschen (Quasi das gegenteil von dem was du willst)
http://www.donkarl.com/FAQ/FAQ1Grundlagen.htm#1.21

und das erscheint mir für dich auch sinnvoll:
Objekte aus anderer DB verwenden
http://www.donkarl.com/FAQ/FAQ1Grundlagen.htm#1.14

Gruss und schönes Wochenende
Nils

Hallo Nils,

danke für deine Tips, ich glaube in Kombination mit meinem mittlerweile gefundenen ansatz ist da was zu machen.

Ich habe mittlerweile so „gelöst“. Ich öffne die Datenbank die ich aktualisieren will.

Dim dbs As Database, ctr As Container, doc As Document

’ Bezug auf Masterformular Datenbank test.mdb zurückgeben.
Set dbs = DBEngine.Workspaces(0).OpenDatabase(F:\test.mdb")
’ Bezug auf Forms-Container zurückgeben.
Set ctr = dbs.Containers!Forms
’ Elemente in Documents-Auflistung des Forms-
’ Containers durchlaufen.
For Each doc In ctr.Documents
’ mit
’ If doc.LastUpdated