23. maj 2003 - 11:06Der er
18 kommentarer og 1 løsning
script eller lign til opdatering af frontend
hejsa ved ikke helt om det er den rigtige kat jeg poster det her under. men mit problem er .. jeg laver en database der er spilttet i frontend og backend nu har vi haft nogle problemer og vedtaget at frontenden skal ligge lokalt er det så en nem måde med et script elign. at når jeg sender en ny version til serven så skal klienterner "bare" klikke på et script der henter frontenden på serven og ligger den lokalt og overskriver den gamle evt. og kan det evt laves så acces køre sciptet automatisk
Brug af AI afslører de svagheder, virksomheder allerede har opbygget gennem års cloud-transformation, nye SaaS-løsninger og fragmenterede sikkerhedssystemer.
jeps den er jeg med på så langt men jeg ville gerne have den til at.. når man starter databasen at tjekke om der er en nyere version af frontenden. også lukker basen køre opdateringen også starte basen igen. derfor tror jeg ikke man kan bruge dos men skal over i et script
Jeg har lavet lige præcis den løsning, som du beskriver. Men den koster dyrt, da det er MEGET besværligt at få Access til at overskrive sig selv med en fil. For i det øjeblik, du overskriver database-filen, mister Access også kontrollen og kan derfor ikke genstarte systemet. Endvidere får du slet ikke lov at overskrive filen, så længe Access er åben.
Det svarer til at save den gren over, som du selv sidder på - uden at falde ned.
Jeg har fået lavet en måde at gøre det på, men den koster som sagt en del og kan oftest kun anbefales hvis man har mange brugere og man tit laver opdateringer. Da kan det være brugervenligt at gøre det på denne måde.
Well...spørgsmålet kommer ofte frem her på sitet...og jeg har endnu ikke set en løsning - ud over min egen.
Men du kan jo også bare lade brugerne hente en frisk kopi hver gang de logger på nettet (via login-script) Eller lade dem selv klikke på .bat-filen. Det er vel også rimelig brugervenligt...!?
Du har ret i, at man burde kunne lave et vb-script, som først checker Access-versionen, kopierer hvis nødvendigt og derefter starter Access.
Min funktion checker løbende (f.eks. hvert minut eller hvert 5. minut) om der er en ny version af databasen. Hvis dette er tilfældet får brugeren en besked på skærmen, som han kan annullere eller acceptere hvorefter systemet selv kopiere sig ned og derefter genstarter. Det kører ret fornuftigt og koster ikke under 4K og heller ikke over 4K (så har jeg vist ikke sagt for meget ;o)
Min løsning går på at have en lokaltabel med versionsnumr.
I en vbs fil kan man via ado tjekke om der er behov for opdatering (versions nummer i lokal db kontra den på nettet) og derefter kopiere den nye version til lokal disk.
Denne vbs fil skal derefter ligge i brugernes startmenu således at der tjekkes for ny version hver gang computeren tændes.
Jeg vil da godt fortælle hvordan jeg har løst dette problem her i vores virksomhed. Alle brugere der logger på netværket får et drev H: som er deres helt personlig drev. Jeg har så lavet et script der kopierer de forskellige frontends til de brugere der skal have adgang til dem. Dette script kører vores filserver så hver nat. Når jeg har opdateret i diverse frontends, kører jeg en compact/repair på den og kopierer den op på filserveren. Så har brugerne den nye version senest dagen efter.
Det behøver ikke være mere forkromet, det fungerer fint og har gjort det de sidste 3 år.
jamen det er jo scriptet jeg skal bruge nu har jeg lavet i et vb
im fs, f, s, fs1, f1, s1, filespec1, filespec ''' Dim filespec As String
filespec = ("c:\databaser\hmfrontend.mdb") Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.GetFile(filespec) s = s & f.DateLastModified
filespec1 = ("G:\Dokumenter\Access\Hfirma\work\front.mdb") Set fs1 = CreateObject("Scripting.FileSystemObject") Set f1 = fs1.GetFile(filespec1) s1 = s1 & f1.DateLastModified
If s >= s1 Then MsgBox "old or same"
Set WshShell = CreateObject("WScript.Shell") WshShell.Run filespec Set WshShell = Nothing Else MsgBox "nyere" Set WshShell = CreateObject("WScript.Shell") WshShell.Run "command /C xcopy/y G:\Dokumenter\Access\firma\work\front.mdb C:\Databaser\HMFrontend.mdb" Set WshShell = Nothing End If
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.