MS-Office-Forum

MS-Office-Forum (https://www.ms-office-forum.net/forum/index.php)
-   Microsoft Access (https://www.ms-office-forum.net/forum/forumdisplay.php?f=60)
-   -   Beispiel für automatisches mdb Update mittels Batch-Datei (https://www.ms-office-forum.net/forum/showthread.php?t=130759)

coron 05.05.2008 14:22

hallo,

hab mich wegen dem thema hier auch angemeldet... finde die idee echt gut! hab es bei mir auch direkt ausprobiert, funktioniert auch soweit problemlos...
allerdings hab ich jetzt folgendes problem:

Bei mir läuft das ganze auf einem Terminalserver auf dem hier eigentlich alle arbeiten.
Meine neue Datenbank läuft unter Office 2k3, es gibt aber eine weitere DB, die unter Office97 läuft. das soll auch so bleiben. heisst also, das ich 2 officeversionen auf dem TSE laufen hab. Problem ist beim öffnen der MDE öffnet er immer Access97 und sagt das das dateiformat unbekannt ist, ist ja auch klar.
kann ich in der batch irgendwie einstellen das er die db mit access 2k3 öffnet?

was noch erschwerrend hinzukommt, bei beiden version hat die exe-datei ja den gleichen namen... also MSACCESS.EXE

mfg tobi

Anne Berg 05.05.2008 15:49

Hallo und Willkommen im Forum.

Verschiedene Office-Versionen müssen selbstverständlich in verschiedene Verzeichnisse installiert werden. Die Anwendungen solltest du mit einer Verknüpfung starten, wobei die benötigte Access-Version mit vollständigem Zugriffspfad angegeben werden kann.

Helikutscher 21.04.2009 17:05

Hallo Fynbos,

zunächst einmal danke für diesen wirklicH nützlichen Beitrag. habe versucht das ganze für meine Anwendung umzusetzen, habe aber leider ein kleines Problem dabei.

Bevor ich das automatische Update im Netz realisiere, möchte ich es lokal auf meinem Rechner testen. Mein FE heisst ElGeWa.mdb. Der "Serverpfad" ist in diesem Fall c:\Entwicklung\TestDBs\ElGeWa.mdb. Der "Client" liegt auf c:\
WinRAR befindet sich auf dem Serverpfad. TUB_XP.bat auf dem Serverpfad und TUB_VER auf dem Client. In TUB_VER habe ich die neue Versionsnummer eingetragen. Die gepackte neue datei ElGeWa.rar liegt ebenfalls auf dem Server.

TUB_XP.BAT habe ich wie folgt angepasst:

Code:

::Wichtige Erläuterungen:
::Die Datei unrar.exe muss im Serverpfad vorhanden sein.
::Sie ist freeware und unter www.rarsoft.de kostenlos zum download.
::Die mdb-Datei muss natürlich auf dem Server auch gepackt vorhanden sein.
::Wir empfehlen dazu eine Version von winrar3.2, mit dessen hilfe gut gepackt werden kann
::(höchste Komprimierungsstufe, logisch)

::Für Fragen siehe auch unter http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=130759
::oder mail an rose@exs.de oder weinrich@exs.de

:: Carsten Pache, 1999
:: Modifiziert Florian T. Rose, 2004 rose@exs.de
:: Modifiziert Markus Weinrich, 2004 weinrich@exs.de



:: ----- START -----

::Befehlszeilenaugabe aus
@echo on


::Variablen deklarieren
SET FrontEndPfad=C:\
SET FrontEndProg=ElGeWa
SET ServerPfad=c:\Entwicklung\testDBs

:: Screen löschen
CLS

::ZWEITE BATCHDATEI AUF DEM SERVER AUFRUFEN UND DARÜBER DIE VARIABLE DER VERSIONSNUMMER HOLEN
::CALL ruft in einer Batch-Datei eine andere Batch-Datei auf. (SIEHE AUCH http://mac-ware.de/command/Hilfe/Befehle/call.htm)
CALL T:\tub_ver.bat

::Ist das Verzeichnis auf diesem Rechner bereits vorhanden?
::JA --> nichts tun
::NEIN --> Verzeichnis anlegen
IF NOT EXIST "%FrontEndPfad%\*.*" MD "%FrontEndPfad%"

pause

::Existiert das unrar.exe-Programm auf dem Zielrechner?
::JA --> weiter zu prog-da-check
::Nein -->kopieren und meldung ausgeben
IF EXIST "%FrontEndPfad%\unrar.exe" GOTO PROGDACHECK
ECHO ***
ECHO *** Komprimierungssystem wird installiert...
ECHO ***
copy "%ServerPfad%\unrar.exe" "%FrontEndPfad%\unrar.exe">nul

pause
::ICON checken und kopieren
IF NOT EXIST "%FrontEndPfad%\ElGeWa.ico" COPY "%ServerPfad%\ElGeWa.ico" "%FrontEndPfad%\ElGeWa.ico">nul
pause
:PROGDACHECK
::Existiert die aktuelle Version bereits auf diesem Rechner?
::JA --> Programm starten
::NEIN --> Programm vom Server auf den Rechner kopieren
IF EXIST "%FrontEndPfad%\%FrontEndProg%-%FrontEndVersion%.mdb" GOTO PROGRAMMSTART

pause
ECHO ***
ECHO *** veraltete ElGeWa-Versionen werden geloescht...
ECHO ***
IF EXIST "%FrontEndPfad%\%FrontEndProg%*.mdb" DEL "%FrontEndPfad%\%FrontEndProg%*.mdb"
Pause

::MDB-Datei vom Server auf den aktuellen Rechner kopieren
ECHO ***
ECHO *** Kopiere "ElGeWa %FrontEndVersion%" vom Server...
ECHO *** Bitte einen Moment Geduld! (Dieser Vorgang kann einige Minuten dauern)
ECHO ***
IF EXIST "%ServerPfad%\%FrontEndProg%-%FrontEndVersion%.rar" COPY "%ServerPfad%\%FrontEndProg%-%FrontEndVersion%.rar" "%FrontEndPfad%\%FrontEndProg%-%FrontEndVersion%.rar">nul

Pause
:: Entpacken mittels der unrar.exe OHNE Fehlermeldung bei Überschreiben!
%FrontEndPfad%\unrar.exe e -y "%FrontEndPfad%\%FrontEndProg%-%FrontEndVersion%.rar" %FrontEndPfad%\

::löschen der .rar-datei
DEL "%FrontEndPfad%\%FrontEndProg%-%FrontEndVersion%.rar"

Pause
:PROGRAMMSTART
IF EXIST "%FrontEndPfad%\%FrontEndProg%-%FrontEndVersion%.mdb" START "ElGeWa %FrontEndVersion%" "%FrontEndPfad%\%FrontEndProg%-%FrontEndVersion%.mdb"

::Variablen loeschen
SET FrontEndVersion=
SET FrontEndPfad=
SET FrontEndProg=
SET ServerPfad=
Exit
:: ----- ENDE -----

Das ganze läuft soweit durch, stoppt aber dann mit der Fehlermeldung "cannot open c:\\ElGeWa-.rar Das System kann die angegebene Datei nicht finden"

Könntest du mir hierbei bitte mal helfen? Ich habe keine Ahnung was falsch ist. Hoffentlich erreicht dich meine frage noch. Ist ja reichlich lange her zum letzten Beitrag.

Besten Dank im voraus.

Gruß harald

BoskoBiati 21.04.2009 17:27

gestrichen, war nix!

Anne Berg 21.04.2009 17:36

Zitat:

SET FrontEndPfad=C:\

COPY "%ServerPfad%\%FrontEndProg%-%FrontEndVersion%.rar" "%FrontEndPfad%\%FrontEndProg%-%FrontEndVersion%.rar">nul
Da dürfte dann wohl überall ein Backslash zu viel drin sein.

Besser: lege das Frontend in ein Unterverzeichnis!


@Edgar: kennst du den Satz mit "x"?

Marsu65 30.03.2010 00:56

Gerade mal beim Stöbern hier hineingestolpert.
Frage: Wo kann man sehen was in der zweiten bat (tub_ver.bat), die den Versionsabgleich durchführt steht? Der Link aus der Client-bat existiert nicht mehr.

Zweite Frage in dem Zusammenhang: wie kann man in einer Batch-Datei das ERSTELLUNGSdatum zweier Dateien vergleichen?

CptChaos 30.03.2010 09:03

Hier habe ich 2 Varianten (1x per PowerShell, 1x per Windows Script File) für ein Scriptupdate vorgestellt.

An das FileCreated-Datum kommst Du auch über das FileSystemObject.
Wozu willst Du das vergleichen? Finde ich nicht unbedingt optimal, da es z.B. durch Scripte verändert (ob bewusst oder unbewusst) werden kann.

Marsu65 31.03.2010 15:37

Hi Benny
Zitat:

Wozu willst Du das vergleichen?
MDE kommt auf den Server. Dann brauch ich nur eine neue drüberzuklatschen. Die Clients können beim Start vergleichen und ggf. kopieren.

Danke für die Beispiele. Mit wsf bzw. vbs hatte ich gar nicht gedacht, weil noch nie wirklich mit beschäftigt. Ist ja noch viel einfacher :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:31 Uhr.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.