Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Batch Datei startet VBS mit Fehler

Mitglied: Marja

Marja (Level 1) - Jetzt verbinden

28.02.2006, aktualisiert 12.06.2007, 7639 Aufrufe, 11 Kommentare

Hallo zusammen

seit kurzem, so wie es aussieht wurde auf unseren Firmen Netzwerk PC der Service Pack 2 bei Windows Professional bzw. auch bei Access habe ich schon Service Pack 2 bei den Infos gelesen.

Ich hatte bisher eine Batch Datei die eine VBS Datei gestartet hatte.

01.
::mitarbeiter.bat 
02.
@echo off 
03.
 
04.
if not exist F:\Desktop mkdir f:\Desktop 
05.
 
06.
echo Es wird nun ?berprft ob eine neue Version existiert! 
07.
echo ... 
08.
echo Bitte warten Sie ! Das Mitarbeitertool wird gleich gestartet! 
09.
echo ... 
10.
  
11.
 
12.
copy G:\FM\Access\xxx\MitarbeiterTool\Desktop\Mitarbeitertool.lnk F:\Desktop/d 
13.
 
14.
if not exist C:\Temp\%username%\Mitarbeitertool mkdir C:\Temp\%username%\Mitarbeitertool 
15.
 
16.
 
17.
replace G:\FM\Access\xxx\MitarbeiterTool\Desktop\Mitarbeitertool.mde C:\Temp\%username%\Mitarbeitertool/a 
18.
replace G:\FM\Access\xxx\MitarbeiterTool\Desktop\Mitarbeitertool.mde C:\Temp\%username%\Mitarbeitertool/u  
19.
 
20.
replace G:\FM\Access\xxx\MitarbeiterTool\Desktop\Mitarbeitertool.vbs C:\Temp\%username%\Mitarbeitertool/a 
21.
replace G:\FM\Access\xxx\MitarbeiterTool\Desktop\Mitarbeitertool.vbs C:\Temp\%username%\Mitarbeitertool/u  
22.
 
23.
 
24.
C:\Temp\%username%\Mitarbeitertool\Mitarbeitertool.vbs
So und nun die Mitarbeitertool.vbs
01.
Option Explicit 
02.
 
03.
Const acCmdAppMaximize = 10  
04.
 
05.
dim link 
06.
dim wshnetwork 
07.
dim wshshell 
08.
dim ingret 
09.
 
10.
Set WshNetwork = WScript.CreateObject("WScript.Network") 
11.
Link = "C:\Temp\" &WshNetwork.UserName & "\Mitarbeitertool\Mitarbeitertool.mde"  
12.
 
13.
Set WSHShell = WScript.CreateObject("Access.Application")  
14.
 
15.
       
16.
      WSHShell.automationsecurity=1 ' low. 
17.
      WSHShell.OpenCurrentDatabase Link 
18.
      WSHShell.visible=true 
19.
      WSHShell.RunCommand acCmdAppMaximize  
20.
      WSHShell.docmd.Maximize 
21.
      WSHShell.usercontrol=true

Bei dieser VBS Datei kommt es seit dem Einspielung der Service Packs (vermutlich) zu einem Fehler in der Zeile 17. Komischerweise nicht bei jedem PC, aber bei der Mehrheit.

Zeile 17: WSHShell.OpenCurrentDatabase Link

Die VBS war damals dafür gedacht das die meheren Abfragen bevor die Access Anwendung gestartet wird umgangen wurden, damit der Mitarbeiter nicht verwirrt werden was sie nun drücken sollte, ob unsichere Ausdrücke blockieren oder nicht etc.

Wenn man in der Bat Datei statt der vbs die mde startet ist es ja auch o.k. aber dann bleibt das Dos Fenster auf und das verwirrt wieder.

Kann mir jemand helfen ?

Marja
Mitglied: Biber
28.02.2006 um 17:30 Uhr
Moin Marja,

ich lese mir das nun auch zum dritten Mal durch, ohne eine richtig wahrscheinliche Erklärung für dieses Phänomen zu finden.
Ich denke, die ganz unwahrscheinlichen Gründe hast Du bestimmt schon selbst überprüft und ausgeschlossen (Leerzeichen im %username%; Fehlendes laufwerk F: ; keine Rechter auf C:\temp\; kein WSH/VBS installiert oder nicht erlaubt;...)

Hast Du denn
a) mal den inhalt von "Link" anzeigen lassen? Kommt da noch ein plausibler String raus?
b) was sagt denn in Fehlermeldung in Zeile 19 außer "Fehler"?

Gruß
Biber
Bitte warten ..
Mitglied: maneich
01.03.2006 um 01:36 Uhr
Hallo,

mir geht es genau so wie Biber.

Aber für den Übergang, bis das VBS wieder fehlerfrei läuft folgendes:

setze hinter die letzte Zeile der BAT ein eof oder ein exit oder auch ein cls.

MfG maneich
Bitte warten ..
Mitglied: Marja
01.03.2006 um 09:01 Uhr
Vielen Dank für eure Antworten

Also komischerweise egal an welchen PC ich mich anmelde bekome ich nie die Fehlermeldung. Auf C:/Temp haben soweit alle Schreibrechte, anders ist es nachher bei der Backend Datei der Access Anwendung. Aber es hatte bisher alles funktioniert, ich schau mal ob ich nochmal an die Fehlermeldung rankomme.

Achso das cls oder exit oder eof funktionieren nicht so recht, da ja in der Batch Datei die mde geöffnet wird und erst wenn die Antwendung geschlossen ist, schließt sich auch das Dos Fenster.

Edit: Habe nun die Fehlermeldung

Script: C:\Temp\name.vorname\Mitarbeitertool\mitarbeitertool.vbs
Zeile: 17
Zeichen: 7
Fehler: Microsoft Office Access kann die Datenbank nicht öffnen, da sie nicht exisitert, oder da ein anderer Benutzer sie bereits im Exklusivmodus geöffnet hat.
Code: 800A1EBA
Quelle: (null)

hmm, was bedeutet das nun korrekt? Also vorher wie gesgat hat es wunderbar funktioniert.

Ablauf, für jeden Mitarbeiter wird beim Start der BAT die (Frontend) mitarbeitertool.mde auf dem Laufwerk C:/Temp unter dem Usernamen gespeichert, außerdem liegt da auch die mitarbeitertool.vbs. DIe Backend mitarbeitertool_back.mde liegt auf einem anderen NetzLaufwerk was für alle anderen aber zugänglich ist.

Hmm, was mich eigentlich nur stört ist das Dos Fenster was ständig offen bleibt, bei der vbs Variante wird dieses geschlossen.

Marja
Bitte warten ..
Mitglied: maneich
01.03.2006 um 13:02 Uhr
Hallo,

nun, möglicherweise wurde mit dem Service-Pack 2 von Acces hier etwas dahingehend verändert, daß z.B. hier über VBS nicht mehrere User gleichzeitig auf das Object zugreifen können.

Die Frage ist, ob sich der Exclusivmodus umstellen läßt, ob es dafür einen Schalter oder Eintrag gibt. Dazu kenne ich aber Acces zu wenig.

Daß es mit cls, eof oder exit nicht klappt, habe ich mir fast gedacht. In den meisten Fällen startet die Batch ein Programm/Datei und springt dann zur nächsten Zeile ohne die Ausführung abzuwarten. Bei manchen Anwendungen klappt das aber nicht so, da hier die nächste Zeile erst ausgeführt wird, wenn der vorherige Aufruf abgearbeitet ist. Was hier der Fall zu sein scheint.

In einer VBS z.B. kann man eine Batch starten ohne daß sich ein Fenster öffnet mit

WSHShell.Run "%Comspec% /c Name.bat", 0

Wobei die 0 am Ende dafür sorgt, daß die Batch unsichtbar ausgeführt wird.

Ansonsten kannst du mal versuchen mit "On Error Resume Next" zu testen.

Dazu benötigst Du aber den Rückgabecode für fehlerfreie oder fehlerhafte Ausführung, den Du bekommst mit "x = WSHShell.OpenCurrentDatabase Link" und in der VBS z.B. mit

do
On Error Resume Next
x = WSHShell.OpenCurrentDatabase Link
Err.Clear
WScript.Sleep 1000
Loop Until x = ?

Damit bleibt das Script solange in der Schleife bis der Rückgabecode OK ist. Willst Du den Fehler abfragen dann mit "Loop Until not x = ?". Das klappt aber nicht bei allen Fehlermeldungen. Mußt eben mal testen.

MfG maneich
Bitte warten ..
Mitglied: Biber
01.03.2006 um 14:31 Uhr
Och menno,
da hätte ich auch gleich drauf kommen können...

Ändere bitte die Zeile:
WSHShell.OpenCurrentDatabase Link
-auf-
WSHShell.OpenCurrentDatabase Link, FALSE

...dann wird der exclusive-mode ausgeschaltet.
Syntax ist ja: OpenCurrentDatabase dbname[, exclusive].

Grüße
Biber
Bitte warten ..
Mitglied: Marja
01.03.2006 um 15:34 Uhr
Hallo Biber

leider ohne Erfolg bei einigen, selbst denen die keine Schreibrechte haben funktioniert es und bei manchen nicht.

Das mit der verdeckten Batch Datei, kann mir das einer vielleicht nochmal richtig erklären, also irgendwie bekomme ich das nicht hin, sorry


Marja
Bitte warten ..
Mitglied: Biber
01.03.2006 um 15:48 Uhr
Hm, Marja,

und die (unwahrscheinliche) Erklärung, dass es gar nicht an dem VBS-Schnipsel liegt, sondern tatsächlich irgendein User diese Datei manchmal exklusiv öffnet und alle anderen dadurch blockiert?

Gilt denn wenigstens für die User, die NICHT draufkommen, die eine Fehlermeldung bekommen, dass das reproduzierbar ist - auch nach Feierabend, wenn kein anderer User mehr mit der *.mde arbeitet?

Ratlos
Biber
Bitte warten ..
Mitglied: maneich
01.03.2006 um 18:07 Uhr
Hallo,

eine Batch über VBS zu starten ist einfach.

Du schreibst eine VBS z.B. start.vbs

Inhalt:

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "CMD.EXE /C Hier genau Adresse + Name.bat der Batch einfügen", 0
WScript.Quit


Beinhaltet die Adresse Leerzeichen dann in Doppelte Hochkomma einschließen.

WshShell.Run "CMD.EXE /C ""Hier genau Adresse + Name.bat der Batch einfügen""", 0

Das ist alles.


@Biber

Man lernt immer wieder etwas dazu; das mit der Angabe "false" war mir nicht bekannt.

MfG maneich
Bitte warten ..
Mitglied: Marja
02.03.2006 um 07:50 Uhr
mmh das ist gar nicht so einfach, den wie gesagt bei mir klappt das an jedem PC, bei unterschiedlichen anderen Personen nicht, dadurch das dies auch noch ein Schichtbetrieb ist ist es schwierig eine Minuten zu finden wo keiner dieses Tool nutzt

Vorher wie gesagt auch ohne Probleme erst durch das Office Update Service Paket.

Marja
Bitte warten ..
Mitglied: Marja
02.03.2006 um 08:02 Uhr
Hallo Maneich

würde es bedeuten:

WshShell.Run "CMD.EXE /C c:\blabla.bat", 0

??

Marja
Bitte warten ..
Mitglied: savanna
12.06.2007 um 21:44 Uhr
Das liegt an dem SP2, da wird WSH in der Registry standardmäßig ausgeschaltet.
Kann dir die Keys aber zukommen lassen wenn noch benötigt.
Bitte warten ..
Ähnliche Inhalte
Windows Server

Batch-Datei startet in der Aufgabenplanung nicht

gelöst Frage von koehloWindows Server12 Kommentare

Hallo zusammen, ich bekomme das einfach nicht hin und hoffe jetzt auf Hilfe von den Profis. Ich arbeite mit ...

VB for Applications

VBS oder Batch um eine Datei in Unterordner zu verschieben

Frage von MrRoyalVB for Applications1 Kommentar

Hallo zusammen, ich bin neu hier und kenne mich leider im Bereich VBS und Batch nicht so gut aus. ...

Windows 7

VBS als Aufgabe startet Programm nicht

gelöst Frage von citroendsvierWindows 72 Kommentare

Guten Abend, Vorneweg: Ich konnte mich nicht entscheiden, ob das hier eher Thema Windows 7 oder Shell ist. Ich ...

Batch & Shell

Dateinamen mehrere Dateien ändern mit batch oder vbs Skript

gelöst Frage von Doktore1Batch & Shell3 Kommentare

Hi frohes neues erstmal. Ich würde gerne alle Dateien in ein Ordner umbenennen. Und zwar ein Teil des Dateinamen. ...

Neue Wissensbeiträge
Cloud-Dienste

Neue Exchange Online und Office 365 Limits ab 01.06.2018

Tipp von decathlon vor 10 StundenCloud-Dienste

Achtung für alle Exchange Online Nutzer die es vielleicht übersehen haben. Ab 01. Juni gilt folgendes neues Limit User ...

Humor (lol)
Meine Variante der DSGVO
Tipp von Henere vor 2 TagenHumor (lol)4 Kommentare

Datenschutzerklärung Jede gute Website braucht eine Datenschutzerklärung? Ok, dann machen Sie sich auf etwas gefasst. Präambel Artikel 12 der ...

Administrator.de Feedback

Entwicklertagebuch: Datenschutzerklärung nach DS-GVO

Information von admtech vor 2 TagenAdministrator.de Feedback

Hallo Administrator User, Wir respektieren eure Privatsphäre und möchten euch daher auf die Möglichkeiten für den Umgang mit euren ...

Voice over IP

Rufnummernblock aufbrechen nun möglich bei DTAG

Tipp von Datenreise vor 2 TagenVoice over IP

Bei der Telekom ist es seit einigen Tagen laut Aussage der Geschäftskunden-Hotline möglich, eine Rufnummernübernahme auch dann durchzuführen, wenn ...

Heiß diskutierte Inhalte
CPU, RAM, Mainboards
Wieviel Lüfter hat ein HP Elitebook 8730w ?
Frage von -WeBu-CPU, RAM, Mainboards8 Kommentare

Guten Morgen, gestern Abend hat sich bei meinem HP ein/der Lüfter hörbar abgeschaltet oder stark runter geregelt, obwohl das ...

Batch & Shell
Brauche hilf bei einer batch Datei
gelöst Frage von PilllllleBatch & Shell7 Kommentare

hallo, ich versuche mit Hilfe von einer batch- Datei eine bestimmt Zeile aus einer txt- Datei in eine neue ...

Batch & Shell
Brauche Hilfe bei einer batch datai
gelöst Frage von PilllllleBatch & Shell7 Kommentare

hallo ich möchte mithilfe von einer batch datei den aktuell verbundenen Netzwerknamen abfragen lassen für hilfe währe ich sehr ...

Windows Server
Passwort für Terminalserver-Login über IGEL-Client neu vergeben ?
gelöst Frage von WernimanWindows Server6 Kommentare

Hallo, ich bin -verglichen mit euch- ein absoluter Rookie in der Branche, habe aktuell seit meiner Ausbildung gerade den ...