collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 82
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 14107
  • stats Beiträge insgesamt: 68024
  • stats Themen insgesamt: 9165
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Shell Befehlt funktioniert nicht mehr nach Umstieg auf ACCESS 2016  (Gelesen 5183 mal)

Offline sonja

  • Newbie
  • Beiträge: 26
Ich verwende seit vielen Jahren in meiner Access 2007 Datenbank einen Shell-Befehl. Auch nach Umstieg auf Windwos 10 funktionierte er noch. Nun habe ich die Datenbank in Access 2016 geöffnet und der Befehl wird nicht mehr ausgeführt.

Call Shell("S:\edi4all\edi4all.exe " & strpath, 1)

Programmaufrufe über Shell ohne Argumente an anderen Stellen funktionieren.

Die Variable ist als String deklariert, als Variant funktioniert es auch nicht. Ich kann mir das überhaupt nicht erklären und wäre sehr dankbar für einen Tipp.
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1392
Re: Shell Befehlt funktioniert nicht mehr nach Umstieg auf ACCESS 2016
« Antwort #1 am: Januar 20, 2018, 19:39:44 »
Was steht denn konkret in strpath?

Wird denn das Programm aus dem VBA-Direktbereich ohne Parameterangabe gestartet?Shell "S:\edi4all\edi4all.exe", 1
Grüße von der (⌒▽⌒)
 

Offline sonja

  • Newbie
  • Beiträge: 26
Re: Shell Befehlt funktioniert nicht mehr nach Umstieg auf ACCESS 2016
« Antwort #2 am: Januar 21, 2018, 18:04:43 »
Der Programmstart ohne Parameter funktioniert
Der Parameter beinhaltet einen Dateipfad, z.B. S:\Rechnungen\R18_00017.txt

 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1392
Re: Shell Befehlt funktioniert nicht mehr nach Umstieg auf ACCESS 2016
« Antwort #3 am: Januar 21, 2018, 19:23:27 »
... und im Dateipfad sind keine Leerzeichen und die Datei existiert auch? Im Zweifeldsfall würde ich das Argument einmal zwischen " setzen.
   Shell "S:\edi4all\edi4all.exe " & Chr$(34) & strpath & Chr$(34), 1
Grüße von der (⌒▽⌒)
 

Offline steffen0815

  • Access-Profi
  • **
  • Beiträge: 132
Re: Shell Befehlt funktioniert nicht mehr nach Umstieg auf ACCESS 2016
« Antwort #4 am: Januar 21, 2018, 19:46:29 »
Hallo,
Zitat
der Befehl wird nicht mehr ausgeführt
Das kann ich mir schwer vorstellen. Entweder wird er ausgeführt oder es gibt eine Fehlermeldung.
Hast du die LZF unterdrückt?
Wie lautet der vollständige Code?
Gruß Steffen
 

Offline sonja

  • Newbie
  • Beiträge: 26
Re: Shell Befehlt funktioniert nicht mehr nach Umstieg auf ACCESS 2016
« Antwort #5 am: Januar 21, 2018, 20:23:48 »
.. hat leider nichts geändert.
Die Datei existiert und es sind keine Leerzeichen im Namen. Genau der gleiche Code funktioniert in Access 2007 problemlos.
Kann es sein, dass Verweise fehlen? "Microsoft Shell .." habe ich aktiviert
Laufzeitfehler werden angezeigt, ich habe nichts deaktiviert



Wenn ich folgenden Befehl in das Direktfenster eingebe, funktioniert er in Access 2007 und und Access 2016 nicht


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






Public Sub EDIRechnung(Nummer As String)


Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strEDIName As String, strpath As String


gNummer = Nummer    'globale Variable




    If MsgBox("EDIRechnung für " & gNummer & " wird erstellt", vbOKCancel) = vbCancel Then
        Exit Sub
    End If
   
        'Pfad zur Speicherung der Textdatei
        strpath = "S:\Rechnungen\" & Replace(gNummer, "/", "_") & ".txt"
               
        'Export
        DoCmd.OutputTo acOutputReport, "RechnungEDI_b", acFormatTXT, strpath
       
        'Parameter für Name der EDI-Datei
        strEDIName = Replace(gNummer, "/", "_")
        'EDI-Datei wird erzeugt
       
        Call Shell("S:\edi4all\edi4all.exe " & strpath, 1)
                 
        'Zeitverzögerung
       
        Call modALLG.Pause(1)
       
        'EDI-Versand für die Datei wird angestoßen
        Call Shell("S:\edi4all\edidmp.exe versand " & strEDIName, 1)
       
        'Name der EDI-Datei wird gespeichert für automatischen EDI-Upload
        Set db = CurrentDb
        Set rs = db.OpenRecordset("tmpEDI")
       
        rs.AddNew
        rs!rech_id = "put " & Chr(34) & "S:\edi4all\sendung\O??_" & Replace(gNummer, "/", "_") & ".edi" & Chr(34)
        rs.Update
       
        rs.Close
       


gNummer = ""


End Sub
 


Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1392
Re: Shell Befehlt funktioniert nicht mehr nach Umstieg auf ACCESS 2016
« Antwort #7 am: Januar 21, 2018, 23:11:12 »
Mit anderen Worten, ist es anzunehmen, dass Dein Prozess wie erwartet asynchron startet, die naiv veranschlagte Pausenzeit aber nicht ausreicht.

Für Deinen Zweck dürfte auch eher ein Verfahren wie Programm starten, warten, ExitCode bestimmen angemessen sein.
Grüße von der (⌒▽⌒)
 

Offline sonja

  • Newbie
  • Beiträge: 26
Re: Shell Befehlt funktioniert nicht mehr nach Umstieg auf ACCESS 2016
« Antwort #8 am: Januar 22, 2018, 09:56:29 »
Ich befürchte, das ist nicht das Problem. In diesem Fall müsste doch der Aufruf im Direktfenster funktionieren, oder?
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1392
Re: Shell Befehlt funktioniert nicht mehr nach Umstieg auf ACCESS 2016
« Antwort #9 am: Januar 22, 2018, 10:44:34 »
Ja. Und wenn er nicht funktioniert, muss auch eine Fehlermeldung erscheinen. Du kannst Shell ja auch als Funktion aufrufen und Dir das Ergebnis (die ProzessId) im Direktbereich ausgeben lassen. Sie sollte > 0 sein.

Weiterhin könnte es möglich sein, dass der Sandkastenmodus aktiv ist und die Ausführung verhindert, was ich allerdings von VBA so nicht kenne (vielleicht hat sich aber in neuerem Access-Versionen eine Änderung eingeschlichen?).

Und teste den Aufruf auch einmal mit einer lokalen Datei in einem C:-Verzeichnis.
Grüße von der (⌒▽⌒)
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23498
Re: Shell Befehlt funktioniert nicht mehr nach Umstieg auf ACCESS 2016
« Antwort #10 am: Januar 22, 2018, 12:24:17 »
Hallo,

noch ein paar Tips:

Optionen/Sicherheitseinstellungen überprüfen und einstellen  (Vertrauensürdige Speicherorte, Netzwerkdateien zulassen, Makros zulassen, ActiveX zulassen, usw.)


Windows-Zugriffsrechte für die Netzwerkverzeichnisse prüfen.


Zum Sandkastenmodus:

https://support.office.com/de-de/article/einf%C3%BChrung-in-die-sicherheit-von-access-2010-cae6d764-0318-4622-955f-68d9f186d6ca#__toc265079117




Als Nebentest:   Access-Applikation als Administrator ausführen.

Offline sonja

  • Newbie
  • Beiträge: 26
Re: Shell Befehlt funktioniert nicht mehr nach Umstieg auf ACCESS 2016
« Antwort #11 am: Januar 28, 2018, 07:38:51 »
Ich habe leider eine Zei lang gebraucht, um alle Tipps abzuarbeiten.
Den Sandkostenmodus konnte ich in der Registry nicht finden, weil das Verzeichnis
\Software\Microsoft\Office\14.0\Access Connectivity Engine\Engines
bei mir nicht exisitert
sondern nur 12.0 und 16.0 - beide ohne das Unterverzeichnis Access Connectivity Engine

Wenn ich Shell als Funktion aufrufe bekomme ich ein Ergebnis >0, aber es passiert leider nichts

Der Aufruf mit einer lokalen Datei auf C: funktioniert auch nicht

Ich bin als Administrator angemeldet.

Die Sicherheitseinstellungen habe ich geprüft.

 :'(
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23498
Re: Shell Befehlt funktioniert nicht mehr nach Umstieg auf ACCESS 2016
« Antwort #12 am: Januar 28, 2018, 09:42:49 »
Hallo,

noch'n Versuch:

kopiere die exe- und die Datendatei in ein lokales Verzeichnis (z. B. c:\Temp) und passe die Pfade an.


(Oder vielleicht besser noch:  in das DB-Verzeichnis kopieren)

Was passiert dann damit?

Offline sonja

  • Newbie
  • Beiträge: 26
Re: Shell Befehlt funktioniert nicht mehr nach Umstieg auf ACCESS 2016
« Antwort #13 am: Januar 28, 2018, 10:57:34 »
auf C: hat es auch nicht geklappt

Der Pfad S: ist auch das Datenbankverzeichnis

Kann es sein, dass der Export meines Berichts als txt-Datei unter ACCESS 2016 irgendwie verändert ist? Ich habe beide Exporte (Access 2007 und 2016 ausgedruckt und verglichen und keinen Unterscheid sehen können)
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1392
Re: Shell Befehlt funktioniert nicht mehr nach Umstieg auf ACCESS 2016
« Antwort #14 am: Januar 28, 2018, 11:20:14 »
Öffne mal ein Kommandozeilenfester, wechsle in das Verzeichnis mit dem Export und versuche, die Umwandlung manuell vorzunehmen. Wenn das funktioniert, solltest Du in Access sicherstellen, dass das aktuelle Verzeichnis auch jenes ist, welche den Export beherbergt.

   ChDrive "S"
   ChDir "S:\Dein\Verzeichnis\Pad
   Shell ...
Und stelle auch einmal die Zeitverzögerung höher ein.
Grüße von der (⌒▽⌒)
 

 

[Frage] Kann ich ACC dazu bringen, auch mit einer Linux-Shell zu kommunizieren?

Begonnen von SalvationBoard Access-Hilfe

Antworten: 4
Aufrufe: 4059
Letzter Beitrag Juni 23, 2011, 08:55:25
von database
Öffnen einer MFC anwendung mit Shell ?

Begonnen von StapiBoard Access Programmierung

Antworten: 16
Aufrufe: 8997
Letzter Beitrag August 27, 2011, 18:00:52
von Stapi
Parameterübergabe mit Shell, wie den parameter angeben?

Begonnen von hjboehmerBoard Access Programmierung

Antworten: 2
Aufrufe: 834
Letzter Beitrag Februar 04, 2014, 09:57:57
von hjboehmer
Dateiordner mit Shell öffnen

Begonnen von dierk1804Board Access Programmierung

Antworten: 3
Aufrufe: 1282
Letzter Beitrag Dezember 04, 2014, 15:35:58
von dierk1804
Problem mit TaskID bei Shell-Funktion

Begonnen von trebuhBoard Access Programmierung

Antworten: 3
Aufrufe: 2140
Letzter Beitrag Mai 08, 2015, 00:27:33
von daolix