Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

vba jetzt sychroniseren

Begonnen von tismo, März 04, 2020, 19:14:58

⏪ vorheriges - nächstes ⏩

tismo

Hallo,

ich suche den vba- Befehl für die Schaltfläche 'jetzt synchronisieren'.



MzKlMu

Hallo,
wo ist diese Schaltfläche zu finden ?
Und was willst Du synchronisieren ?

Es mehr Details wären schon sinnvoll, statt des Einzeilers.
Gruß Klaus

PhilS

Zitat von: tismo am März 04, 2020, 19:14:58
ich suche den vba- Befehl für die Schaltfläche 'jetzt synchronisieren'.
Ich habe zwar auch keine Ahnung worum es geht, aber die Konstante AcCommand.acCmdSynchronizeNow wäre rein vom Wortlaut her ein guter Treffer.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

tismo

Für die Jüngeren unter uns: ;)

Bis zur Vers. 2010 konnte mann noch Tabellen replizieren, d. h. Tabellen liegen z.B. auf einem Server und andere Computer konnten von überall aus dem Internet drauf zurgreifen. Laptops, die nicht ständig mit dem Internet verbunden sind, haben ein Replikat, welches man mit einem Internetzugang mit dem Server synchronisieren kann. Dies ist eine sehr einfache und sinnvolle Art nicht-internetverbundene Computer mit Access in einem Netzwerk zu integrieren. Leider hat MS die Replikation nach Access 2010 eingestellt.

Um das Synchronisieren für den Anwender einfacher zu machen, benötige ich den vba-Code um das Synchronisieren zu starten.

Hondo

Das ist einfach eine Methode des DAO Datenbankobjektes.
Beispiel:
Dim dbSync As DAO.Database
Dim strLocal As String, strRemote As String

strLocal = "Pfad/Name des lokalen Replikates"
strRemote = "Pfad/Name des Server Replikates"
Set dbSync = DBEngine(0).OpenDatabase(strLocal)
dbSync.Synchronize strRemote

dbSync.Close
Set dbSync = Nothing


Gruß Andreas

tismo

#5
Danke Andreas, die Synchronisierung klappt.

der Pfad X liegt extern auf einem Server. Ist es möglich, dass vor der eigentlichen Synchronisierung ersteinmal mittels vba geprüft wird, ob der Pfad X überhaupt vorhanden ist. Zur Zeit läuft die vba durch, auch wenn ich nicht online bin, Pfad X ist nicht vorhanden.Sollte Pfad X nicht vorhaden sein sollte ein Nachricht erscheinen.

Private Sub Bild55_Click()
Me.Text46 = "Synchronisierung"

Dim dbSync As DAO.Database
Dim strLocal As String, strRemote As String

strLocal = ("D:/Bemopro/Database BeMoPro 2019.mdb")
strRemote = ("X:/Database/Database BeMoPro 2019.mdb")
Set dbSync = DBEngine(0).OpenDatabase(strLocal)
dbSync.Synchronize strRemote

dbSync.Close
Set dbSync = Nothing

Me.Datum3 = Now()
'Me.Text46 = " "

End Sub


P.S. Wo muss ich Me.Text46 = "Synchronisierung" hinschreiben, damit der Text vor der Synchronisierung erscheint und danach durch Me.Text46 = " " wieder gelöscht wird?

Gruß,
Lars

Hondo

Hallo,
wenn du das möchtest dass zuvor ein Text erscheint, dann schreibe folgendes:
Private Sub Bild55_Click()
    Me.Text46 = "Synchronisierung"
    Me.Timerinterval = 50
End Sub

Und in das Ereignis "Bei Zeitgeber schreibst du den Rest hinein, inclusiv Me.Timerinterval = 0 am Anfang:

Private Sub Form_Timer()
    Dim dbSync As DAO.Database
    Dim strLocal As String, strRemote As String

    Me.Timerinterval = 0
    strLocal = ("D:/Bemopro/Database BeMoPro 2019.mdb")
    strRemote = ("X:/Database/Database BeMoPro 2019.mdb")
    Set dbSync = DBEngine(0).OpenDatabase(strLocal)
    dbSync.Synchronize strRemote

    dbSync.Close
    Set dbSync = Nothing

    Me.Datum3 = Now()
    Me.Text46 = " "
End Sub


Gruß Andreas

PhilS

Zitat von: tismo am März 06, 2020, 18:47:47
P.S. Wo muss ich Me.Text46 = "Synchronisierung" hinschreiben, damit der Text vor der Synchronisierung erscheint und danach durch Me.Text46 = " " wieder gelöscht wird?
Der Text ist prinzipiell schon an der richtigen Stelle.
Vermutlich reicht ein DoEvents nach dem Setzen des Steuerelementinhalts schon aus.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

tismo

Perfekt ... !

Gibt es jetzt noch eine möglichkeit um zu kontrollieren, ob der das Laufwerk X vorhanden (online) ist ?