none
Access Startparameter übergeben, aber leer RRS feed

  • Frage

  • Ich habe ein VBA-Programm das auf 3 Rechnern läuft. Es handelt sich  um eine Access-Datenbank. Das Programm wir durch eine VBS-Prozedur aufgerufen und übergibt dabei einen Startparameter, der im Programm dann abgefragt wird. Wie gesagt, es funktioniert auf 3 WIN10/Rechnern sauber. Wir haben nun einen weiteren Win10/PC in Betrieb genommen und dort das gleiche Programm, die gleiche VBS-Prozedur installiert.

    vbs-Programm:

                    mPfad = mPfad &  " /cmd " & ProgrammModus

                    'Pgm. Aufruf mit Warten auf Ausführungsende

    '               resultat = wshshell.Run (mPfad,, true)

        wshshell.Run mPfad

                          Inhalt von mPfad   =    "C:\Users\sss\Datenbanken\Fahrschule\Eurofahrschule.mdb /cmd norm"

     

    ---------------- mPfad ist richtig. Auch wenn ich im Ausführe-Fenster das Programm Eurofahrschule aufrufe und  mit /cmd norm den Parameter übergebe, ist das Command-Feld im Programm leer.

    ----- Das ist die Abfrage im VBA-Programm

    Dim mParam As String

    Dim mLänge As Integer

    mParam = RTrim$(Command())

    mLänge = Len(mParam)

     

    If mLänge = 0 Then

        Beep

        MsgBox "Startparameter fehlen!", vbCritical

        DoCmd.Quit

    End If

    Wie gesagt in den anderen Installationen funktioniert das einwandfrei. Irgendwie scheint  Access die Variable Command nicht zu kennen. Ich bin jetzt mit meiner Weisheit am End. Vielleicht hat jemand von euch einen klugen Tip.

    Fritz

    Donnerstag, 24. Mai 2018 14:59

Alle Antworten

  • Du rufst ja auch eine Command-Funktion mit Command() auf. Variablen haben keine runden Klammern.
    Versuche einfach nur

    RTrim$(Command)

    oder

    RTrim$(Command$)

    Donnerstag, 24. Mai 2018 15:16
  • Danke für den Hinweis. Wie gesagt, es funktioniert an den anderen Installationen trotzdem. Ich habe aber deinen Rat umgesetzt; leider ohne Erfolg. die Variable Command ist leer.

    Fritz

    Donnerstag, 24. Mai 2018 15:34
  • Es scheint einen Unterschied zwischen installiertem Access und Runtime-Only zu geben:

    Da man ja mehrere Parameter übergeben könnte liefert nun die Funktion Command() ein Array zurück.

    Somit wäre Command()(0) der 1. Parameter nach dem "/cmd".

    https://stackoverflow.com/questions/27904046/ms-access-how-to-determine-the-command-line-parameters-that-the-current-instanc

    Stichwort "Runtime"-Version.

    Freitag, 25. Mai 2018 07:45
  • Der Tip bringt mich darauf; ich werde die ganze Office-Installation nochmal überprüfen. Evtl. liegt da der Hund begraben. Muss ja fast sein, denn ich habe mittlerweile eigentlich alle möglichen Fehlerquellen untersucht. Falls eine Office-Reparatur nichts bringt, dann werde ich die ganze Installation neu machen. Falls das dann die Lösung ist, werde ich mich wieder melden.

    Fritz

    Freitag, 25. Mai 2018 08:11