27. maj 2004 - 16:00Der er
29 kommentarer og 5 løsninger
Autoopdatering af frontend.
Hey Er der nogle der har en løsning på hvordan jeg kan få opdateret mine frontend, da 3 af dem køre via VPN, så kunne det være fedt at jeg bare kunne ligge den nye version i en mappe på serveren og når de så logger på / starter access at den lige kikker om der ligger en ny version.?!
Nogle spørgsmål så kom med dem, så skal jeg svare.! :-)
jeg har en gratis løsning ,... da jeg vist husker noget om man ikke må tilbyde løsninger her på eksperten der koster$ det er vist lidt imod politikken ...
det er ikke mod ekspertens politik at henvise til løsninger, som kan købes på nettet. Hvad hvis én spørger hvor han kan anskaffe sig Access fra? Så må ingen svare....?
Men din løsning er smart og simpelt. Flere af mine kunder opdatere også bare frontenden automatisk via deres login-script. Eller har en .bat-fil liggende på skrivebordet, som laver en alm. xcopy. Der er mange muligheder. Min løsning er helt sikkert bare den mest brugervenlige (og smarteste, synes jeg selv :)
Den aktive indsats består i at brugeren skal klikke på en ok-knap. Samtidig kan den opdateres MENS frontenden er i luften. Men lad os ikke diskutere det.
jeg er lidt i tvivl når det er via vpn , men i givet fald skal stien(filespec1) være til et mappet drev.. du skal så lave koden fra http://www.eksperten.dk/spm/404008 om til et vbscript og lade brugerne køre vbscriptet i stedet for at åbne databasen ..
filespec1 skal indeholde stien til din server fx filespec1 = ("\\server\Databaser\frontend\frontend.mdb")
filespec skal vise hvor din lokale database/frontend ligger fx filespec = ("c:\databaser\frontend.mdb")
Men den genstarter jo ikke selv databasen eller det gør den ikke hos mig ;-) skal brugeren så selv genstarte eller er det bare min der laver lort (win xp og access 2002)
ja den vil kun opdatere filen , når man åbne databasen ... ellers skal du lave en funktion (timer)i access der tjekker om der er kommet en ny version og så kommer med en msgbox om at databasen lukkes pga opdatering
men du kan ikke uden videre bare opdatere en base der er åben den skal være lukket.. der er som at saven den gren over du sidder på ..
HVad er det helt præcist du søger .. du skrev det var når de loggede på så skulle den opdatere basen hvis der var en ny
Jamen det script du har linket til der meget fint og kan det den skal men jeg kan ikke se de ændringer der er fortaget får jeg har lukket og åbnet databasen efter opdatering.! Og jeg regner ikke med at to damer på +50 husker at lukkke og åbne databasen efter opdatering. Kan du følge mig.?
den kan have noget med tiden at gøre. hvis fx tiden på pc'en er 2-3 min efter men som relgt vil der jo gå fx en dag eller timere inden der kommer en ny base og vil det ikke give noget problem..
Fra en markro der heder Autoexec kalder jeg update() også videre viker ikke skide godt hvad laver jeg galt.!
Public Function update() Dim fs, f, s, fs1, f1, s1, filespec1, filespec, fso, f2
filespec1 = ("\\Server-01\ON-IT\Frontend\front.mdb") Set fs1 = CreateObject("Scripting.FileSystemObject") filespec = ("c:\on-it\databaser\front.mdb") Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FileExists(filespec) And fs1.FileExists(filespec1) Then
Set f1 = fs1.GetFile(filespec1) s1 = s1 & f1.DateLastModified Set f = fs.GetFile(filespec) s = s & f.DateLastModified If s > s1 Then Set WshShell = CreateObject("WScript.Shell") WshShell.Run filespec Set WshShell = Nothing Else Set WshShell = CreateObject("WScript.Shell") WshShell.PopUp "Ny version af databasen" & vbCrLf & "vent venligst! ", 2, "Opdatering Af frontend", 32
Set fso = CreateObject("Scripting.FileSystemObject") Set f2 = fso.GetFile(filespec1) f2.Copy (filespec) Set WshShell = CreateObject("WScript.Shell") WshShell.Run filespec Set WshShell = Nothing
End If Else If fs.FileExists(filespec) Then MsgBox " Du er ikke tilknyttet serveren" & vbCrLf & "Opdatering af frontenden ikke muligt" & vbCrLf & "Såfremt du er til knyttet serveren kontakt JHC 20706424" Set WshShell = CreateObject("WScript.Shell") WshShell.Run filespec
Else Set WshShell = CreateObject("WScript.Shell") WshShell.PopUp "Der er ingen frontend lokalt" & vbCrLf & "vent venligst medens kopieringen foretages! ", 2, "Opdatering Af frontend", 32
Set WshShell = Nothing Set fso = CreateObject("Scripting.FileSystemObject") Set f2 = fso.GetFile(filespec1) f2.Copy (filespec) Set WshShell = CreateObject("WScript.Shell") WshShell.Run filespec
det kan du ikke ... du kan jo ikke opdatere den base du er igang med at bruge ... det er som at save den gren over du sidder på ... lav det til et vbscript ... sæt koden ind i en text fil og gem som xxx.vbs
og prøv så lige at læse det jeg har skrevet i de tidligere posts
filespec1 = ("\\Server\ON-IT\Frontend\front.mdb") Set fs1 = CreateObject("Scripting.FileSystemObject") filespec = ("c:\on-it\databaser\front.mdb") Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FileExists(filespec) And fs1.FileExists(filespec1) Then
Set f1 = fs1.GetFile(filespec1) s1 = s1 & f1.DateLastModified Set f = fs.GetFile(filespec) s = s & f.DateLastModified If s = s1 Then Set WshShell = CreateObject("WScript.Shell") WshShell.Run filespec Set WshShell = Nothing Else Set WshShell = CreateObject("WScript.Shell") WshShell.PopUp "Ny version af databasen" & vbCrLf & "vent venligst! ", 2, "Opdatering Af frontend", 32
Set fso = CreateObject("Scripting.FileSystemObject") Set f2 = fso.GetFile(filespec1) f2.Copy (filespec) Set WshShell = CreateObject("WScript.Shell") WshShell.Run filespec Set WshShell = Nothing
End If Else If fs.FileExists(filespec) Then MsgBox " Du er ikke tilknyttet serveren" & vbCrLf & "Opdatering af frontenden ikke muligt" & vbCrLf & "Såfremt du er til knyttet serveren kontakt JHC 20706424" Set WshShell = CreateObject("WScript.Shell") WshShell.Run filespec
Else Set WshShell = CreateObject("WScript.Shell") WshShell.PopUp "Der er ingen frontend lokalt" & vbCrLf & "vent venligst medens kopieringen foretages! ", 2, "Opdatering Af frontend", 32
Set WshShell = Nothing Set fso = CreateObject("Scripting.FileSystemObject") Set f2 = fso.GetFile(filespec1) f2.Copy (filespec) Set WshShell = CreateObject("WScript.Shell") WshShell.Run filespec
denne virker i windows 2000 jeg har tidligere haft problemer i winxp ... skal lige finde løsningen ... og grunden til den opdaterede hele tiden var fordi < skulle skiiftes med = i den første if-sætning (If s = s1 Then)
else Set WshShell = CreateObject("WScript.Shell") WshShell.Popup "Ny version af databasen" & vbCrLf & "vent venligst! ", 2, "Opdatering Af frontend", 32
Set fso = CreateObject("Scripting.FileSystemObject") Set f2 = fso.GetFile(filespec1) f2.Copy (filespec) Set WshShell = CreateObject("WScript.Shell") WshShell.Run filespec WshShell.Popup " ", 1, "", 32
End If Else If fs.FileExists(filespec) Then Set WshShell = CreateObject("WScript.Shell") WshShell.Popup " Du er ikke tilknyttet serveren" & vbCrLf & "Opdatering af frontenden ikke muligt" & vbCrLf & "Såfremt du er til knyttet serveren kontakt JHC 20706424", , "Opdatering Af frontend", 32
Har fået den til at virke ved at endreWshShell.Run filespec til WshShell.Run filespec,1, True men mange tak for hjælpen.!
Synes godt om
Ny brugerNybegynder
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.