Avatar billede martens Guru
15. marts 2017 - 21:59 Der er 4 kommentarer og
1 løsning

Lokal version vs Server Version

Jeg har lige et spørgsmål, hvor jeg er strandet...

har en ServerVersion af en database der ofte opdateres og klient-versioner ( KOPIER) på arbejdsstationer.
for at klienterne bliver gjort opmærksomme på den nye version, de ikke kan leve uden, vil jeg gerne pr. automatik informere klienterne om den nye fil.. eventuelt scripte mig ud at den bliver "rullet ud " pr. automatik..

Men hvordan pokker laver jeg dette check smartest ?

Roder lidt med nedenstående kode, jeg har "hapset" på nettet, da jeg umiddelbart mente, at der var noget godt i dette ,- det er rettet lidt til, men jeg fatter ikke lige, hvorfor skidtet ikke virker .. 
- Hvor gemmes versionsnummeret på den aktuelle filversion af databasen ?

koden :

-----------

Private Sub Form_Timer()
Dim appAccess As Access.Application
Dim varServerVersion As Variant
Dim varLocalVersion As Variant
Const conOPEN_EXCLUSIVE As Boolean = False

'************* * *************
'Initialize String to Patabase Path
Const PATH_TO_DataBase = "C:\_TheScripts\db_one.accdb"

Set appAccess = CreateObject("Access.Application")


appAccess.OpenCurrentDatabase PATH_TO_DataBase, False
'Retrieve the Project Version via Automation and store in Variable

varServerVersion = appAccess.SysCmd(acSysCmdAccessVer)

appAccess.Quit
Set appAccess = Nothing
'******* All done as far as the Project on the Server is concerned ********

'***************** Now, let's retrieve the Local Version ******************
varLocalVersion = Application.SysCmd(acSysCmdAccessVer)

' MsgBox varServerVersion & " " & varLocalVersion


'For testing purposes only
MsgBox "Server Version: " & varServerVersion & " <==> Local Version: " & varLocalVersion

'Let's compare both the Local and Server Versions
If varLocalVersion < varServerVersion Then
  MsgBox "Den lokale version er ældere en ServerVersionen - Upgrade time!", _
          vbExclamation, "Local Version < Server Version"
ElseIf varLocalVersion = varServerVersion Then
  MsgBox "Versionen er opdateret i forhold til Serverversionen !", _
          vbInformation, "Versions Same"
Else    'Local Version greater than the Server Version, should never happen?
  MsgBox "Time to Upgrade the Server", vbExclamation, "Upgrade Server"
End If

'At some point do you wish to disable the Timer?
'Me.TimerInterval = 0
End Sub
----------------------------------------------

mvh martens
Avatar billede Slettet bruger
16. marts 2017 - 01:11 #1
jeg ved det ikke, men ville sige: er det ikke smartere at databasen er på en netværk share, og det er denne share som klienterne læser fra ?
Avatar billede Slettet bruger
16. marts 2017 - 08:15 #2
Du har selvfølgelig ændret denne sti med din fil:
Const PATH_TO_DataBase = "C:\_TheScripts\db_one.accdb"
?
Avatar billede martens Guru
16. marts 2017 - 09:09 #3
ja ;o) stien til MASTER-databasen er korrekt -  Jeg ser endda at databasen åbnes og der laves en lock-fil ( i et kort øjeblik )... men ellers synes jeg ikke der sker så meget, hvis jeg laver en ændring i MASTER-filen og åbner den lokale ældre fil på klienten.... ;o(
Avatar billede Slettet bruger
16. marts 2017 - 10:23 #4
hvis du fjerner '-tegnet på denne linje (' MsgBox varServerVersion & " " & varLocalVersion), så bør du også få en pop-up hvor du kan se versionerne - så kan du måske kom lidt tættere på svaret?

MsgBox varServerVersion & " " & varLocalVersion
Avatar billede fdata Forsker
16. marts 2017 - 12:17 #5
Dette versionstjek tjekker selve <b>Access versionen</b> og ikke applikationens version. Så længe både server og klient bruger f.eks. Access 2016, er tjekket jo meningsløst.

Hvis du vil tjekke applikationens version, kan du oprette en tabel, som indeholder et versionsnummer. I klienten opretter du et link til server-basens versionstabel.
Så kan du sammenligne den lokale versionstabel med den linkede versionstabel.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester