PDA

Vollständige Version anzeigen : Update einer Datenbank


Timmelstreter
06.10.2001, 13:59
Hallo Leute,

Ich habe ein großes Problem!
Ich habe zunächst eine funktionierende Datenbank (also dass ist nun nicht das Problem:-) !); diese Datenbank läuft unabhängig auf mehreren Computern (ohne direkte Verbindung zueinander). Nun führe ich eine Veränderung der Datenbank durch. Wie kann ich nun ein "Update" auf den anderen Computern durchführen, so dass aber der Inhalt der Tabellen erhalten bleibt - und das Ganze für den Anwender möglichst einfach? Für mich ist das prinipiell ein Problem, da ja die Tabellen, Abfragen, VBA - Codes... alle in einer Datei sind.
Ich würde mich sehr freuen, wenn mir jemand helfen könnte.

Mit freundlichen Grüßen

Timmelstreter

doktor
06.10.2001, 14:12
hi
hast du etwas an den tabellen verändert?
doc

Timmelstreter
06.10.2001, 14:25
Hi,

noch einen Nachtrag:
an den Tabellen bzw. deren Struktur habe ich nichts verändert!

Gruß, Timmelstreter

doktor
06.10.2001, 14:35
hi
du erstellst eine kopie
entfernst alle tabellen
bringst den new.mdb an den user und importierst seine tabellen
doc

Timmelstreter
06.10.2001, 14:39
hi,

vielen Dank deine Antwort! Prinzipiell erscheint sie mir logisch. Ich muß aber sagen, dass mir nicht ganz klar ist, ob ich diesen Vorgang automatisieren kann?

Scorefun
06.10.2001, 15:02
hast Du keine Trennung zwischen Frontend und Backend?
Das würde ich mal in Erwägung ziehen.

Dann brauchst Du nämlich bei Änderungen nur das Frontend austauschen.

Alex O
07.10.2001, 18:22
Hallo,

wie in einer der vorigen Antworten bereits erwähnt, ist es sicherlich von Vorteil, wenn die DB geteilt ist. D.h. Eine DB die sämtliche Tabellen beinhaltet, sowie eine 2. DB mit Abfragen, Formulare, usw., in der die Tabellen aus DB1 eingebunden sind. Sehr hilfreich hierbei ist der "Assistent zur Datenbankaufteilung", unter Access 97 unter Extras/Add-Ins, und unter Access 2000 unter Extras/Datenbank-Dienstprogramme zu finden. Das könnten dann, falls Deine Anwendung bereits im Umlauf ist, die einzelnen User einmalig selbst erledigen. Für das Update selbst muss dann nur noch DB2"alt" durch DB2"neu" ersetzt werden. Automatisieren könnte man das noch mit Hilfe einer Batch-Datei oder evtl. über eine von WinZip erzeugte EXE-Datei. Vorausseetzung bei diesem Vorgehen ist natürlich, dass das DB-Design der DB1, die nur die Daten enthält, steht und hier keine Veränderungen vorgenommen werden müssen.
HINWEIS: Vor Benutzung des Assistenten unbedingt DB-Sicherung anlegen!!!!!
Diese Lösung hab ich selbst schon realisiert und funktioniert bislang ganz gut....

Gruß Alex

Sascha Trowitzsch
07.10.2001, 22:35
@Alex O:

Ganz so einfach ist es meist nicht mit dem Automatisieren.
So wie du's beschreibst funktioniert es nur, wenn der Pfad der verknüpften Tabellen auf Entwicklungssystem und Zielrechner identisch sind. Das ist selten der Fall.
Also muss auch die Verknüpfung der Tabellen neu angepasst werden.
Wenn die Anwender in Access fit sind, können sie das eventuell mit dem Tabelenverknüpfungsmanager selbst tun. Auch das dürfte selten der Fall sein.
Also ist noch VBA-Code in die DB zu integrieren, der eine solche Verknüpfung automatisiert.

Ciao, Sascha

uke
07.10.2001, 22:53
...und den Code gibt's gleich dazu...

Dim db As Database
Dim rs As Recordset
Dim Daten_Pfad As String

Daten_Pfad = ... 'wo die Daten-MDB steht

Set db = CurrentDb()
Set rs = db.OpenRecordset("SELECT tabelle FROM tabellen WHERE typ = 'ACCESS'")
'habe eine Tabelle angelegt, in der alle Tabellen stehen, die eingebunden werden sollen; habe diese auch gleich mit dem Typ versehen (z.B. ACCESS, ODBC etc.)

On Error Resume Next
Do
'erstmal das alte rauslöschen
db.TableDefs.Delete (rs!Tabelle)
rs.MoveNext
Loop While rs.EOF = False

On Error GoTo Fehler

rs.MoveFirst

Do
DoCmd.TransferDatabase acLink, "Microsoft Access", Daten_Pfad, acTable, rs!Tabelle, rs!Tabelle, False, False
rs.MoveNext
Loop While rs.EOF = False

MsgBox "Daten-Tabellen fertig verbunden!", , "Uke"