Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Shell Befehlt funktioniert nicht mehr nach Umstieg auf ACCESS 2016

Begonnen von sonja, Januar 20, 2018, 19:14:15

⏪ vorheriges - nächstes ⏩

sonja

Wenn ich den Befehl direkt in der Eingabeaufforderung eingebe, funktioniert es - auch ohne Verzeichniswechsel

Kann es sein, dass Access 16 dieses neue Powershell verwendet ?

sonja

Wie gesagt, die Eingabe im Eingabefenster funktioniert - auch ohne vorherigen Laufwerks- und Pfadwechsel. Nur aus VBA heraus nicht. Die Verlängerung der Verzögerung ändert nichts  :'(

DF6GL

Hallo,

nochmal, hast Du die Access 2016 Einstellungen für das Trust Center vollständig angepasst/eingestellt?

(Vertrauenswürdige Speicherorte im Netzwerk zulassen mit Unterordner dieses Speicherorts sind ebenfalls vertrauenswürdig, 
Vertrauenswürdigkeit von Dokumenten in einem Netzwerk zulassen,
ActiveX-Einstellungen/Alle Steuerelemente ohne Einschränkungen ... aktivieren,
Alle Makros aktivieren)
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

sonja

Ja habe ich. Wie gesagt, andere Shell Befehle funktionieren ja auch. Ich habe jetzt eine neue Access 2010 Datenbank erstellt und alle Objekte importiert. Auch das hat nichts gebracht.

DF6GL

Hallo,

setz mal einen Haltepunkt an den Shell-Aufruf und schau, ob die Code-Abarbeitung überhaupt dorthin kommt.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

sonja


DF6GL

Hallo,

naja, so langsam gehen die Lichter aus...

Letzter Vorschlag:

schreib mal:

Msgbox  shell ("S:\edi4all\edi4all.exe S:\Rechnungen\R18_00322.txt",1)


und berichte, ob eine MsgBox aufmacht und was sie dann anzeigt....

Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

sonja

Die msgbox meldet "41356"

Ich habe dann mal folgende Zeilen in den Code eingefügt:
Debug.Print ("S:\edi4all\edi4all.exe " & strpath)
MsgBox Shell("S:\edi4all\edi4all.exe" & strpath, 1)


Der debug Befehl gibt den richtigen String zurück:
S:\edi4all\edi4all.exe S:\Rechnungen\R18_01284.txt

Die Msgbox provoziert einen Laufzeitfehler 53 "Datei nicht gefunden"

Hilft das weiter?



daolix

Zitat von: sonja am März 11, 2018, 19:47:07

Debug.Print ("S:\edi4all\edi4all.exe " & strpath)
MsgBox Shell("S:\edi4all\edi4all.exe" & strpath, 1)


Die Msgbox provoziert einen Laufzeitfehler 53 "Datei nicht gefunden"

Hilft das weiter?
da fehlt ein Leerzeichen bei der msgbox

sonja

Danke!
Ich bin wohl schon zu müde
Also, es wird auch hier eine fünfstellige Ziffer angezeigt ...

DF6GL

Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

daolix

Hallo
eine Zahl <> 0 sollte lt. Hilfe eigentlich eine positive programmausführung darstellen.
Ist dein Proggy u.U. ein Konsolenprogramm? Wenn ja könntest du versuchen eventuelle FM's in eine Textdatei umzuleiten.

'Path für die ErrorOut.txt anpassen
Shell("S:\edi4all\edi4all.exe " & strpath & " 2>S:\ErrorOut.txt", 1)

danach öffnest du mal diese ErrorOut.txt
oder per wscript.shell
debug.print createObject("Wscript.shell").exec("cmd.exe /c S:\edi4all\edi4all.exe " & strpath).stderr.readall

sonja

Danke für den Hinweis.
Ich habe beides probiert. Im ersten Fall bekomme ich beim Kompilieren einen Syntaxfehler
Im zweiteren geht kurz das Eingabeaufforderungs-Fenster auf - bleibt aber leer

Die 5stellige Ziffer, die die msgbox liefert ist immer unterschiedlich, heute 46132

PhilS

Zitat von: sonja am März 13, 2018, 07:09:53Die 5stellige Ziffer, die die msgbox liefert ist immer unterschiedlich, heute 46132
Aus der Online-Hilfe zur Shell-Funktion:
ZitatFührt, wenn der Vorgang erfolgreich ist, ein ausführbares Programm aus und gibt ein Variant ( Double )-Objekt zurück, das für die Vorgangsnummer des Programms steht. Andernfalls wird Null zurückgegeben.
Also funktioniert es schon mal, dein Befehlszeilenprogramm aus Access zu starten. Wenn es nicht das tut, was es soll, liegt folglich das Problem bei der Übergabe der Befehlszeilenparameter an das Programm.

  • Ist der Pfad zu der zu bearbeitenden Datei wirklich exakt so, wie hier im Forum dargestellt, oder sind da evtl. Leerzeichen im Pfad? Wenn ja, muss der Pfad in Anführungszeichen eingeschlossen werden.
  • Stimmt der Dateiname genau?
  • Erwartet dein Befehlszeilenprogramm evtl. noch weitere Parameter?

PS: Hast du denn schon probiert, das Befehlszeilenprogramm ausserhalb von Access für eine der erstellten Dateien aufzurufen?
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

sonja

Die Befehlszeile stimmt genau. Wie ich weiter oben schon erklärt habe funktioniert exakt der gleiche Code in Access 2007 seit Jahren fehlerfrei. Ich habe keinerlei Veränderungen vorgenommen, sondern nur die Datenbank in Access 2010 geöffnet. Die gesamte Umgebung (Betriebssystem etc) ist identisch. Beide Programmversionen laufen auf dem selben Rechner.
Die Befehlszeile funktioniert außerhalb von Access 2010 - sowohl in Access 2007 als auch direkt in der Eingabeaufforderung