Announcement

Collapse
No announcement yet.

Übergabe von Variablen an eine Abfrage

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Übergabe von Variablen an eine Abfrage

    Hallo zusammen,

    ich habe (in einer Access 2007 Datenbank) ein Formular, auf dem man verschiedene Suchkriterien via Pulldown-Menüs auswählen kann. Nach Betätigen eines Buttons wird per embedded Makro der Inhalt der Felder verschiedenen Variablen zugewiesen (mittels „FestlegenTempVar“-Befehl und dann als Ausdruck [Formulare]![FORMULAR XY]![Feldname XY]).
    Anschließend wird eine Query gestartet, die als Abfrage-Kriterien die o.g. Variablen (=Suchkriterien) hat.
    Bei mir auf dem Rechner funktioniert das fehlerfrei. Aber ich habe bis jetzt festgestellt, dass auf Rechnern in Amerika und Frankreich (also im Prinzip überall außerhalb Deutschlands) die Variablen nicht an die Abfrage übergeben werden. Der User erhält dann (wenn die Abfrage startet) ein kleines Popup-Window mit der Aufforderung „Enter Parameter Value“ – und dieser Parameter Value sollte eigentlich der in der Variable gespeicherte Wert sein…

    Kann sich da jemand einen Reim drauf machen? Ist es vielleicht möglich, dass in den Access-Einstellungen irgendwas mit Variablen existiert? Oder dass in einer anderssprachigen Access-Version (die z.B. in den USA oder Frankreich genutzt wird) die Übergabe von Variablen nicht funktioniert??

    Danke für Hilfe!
    Stefan

  • #2
    Wie sind die Variablen denn benannt? Umlaute? Sonderzeichen?

    Per [Formulare]![FORMULAR XY]![Feldname XY] gelang mir immer nur der Zugriff auf 'echte' Formularfelder.

    Auf für Variablen, wie du schreibst, mußte ich immer "Getter" schreiben so in der Art

    [highlight=vba]
    Dim pDatum

    Public Sub GetDatum() as Date
    GetDatum =pDatum
    End Sub
    [/highlight]

    In der Abfrage dann WHERE [feldname] > GetDatum().....

    Hab' das allerdings noch nie in Frankreich ausprobiert

    Viel Erfolg
    Tino
    Ich habs gleich!
    ... sagte der Programmierer.

    Comment


    • #3
      Wie sind die Variablen denn benannt? Umlaute? Sonderzeichen?
      Hallo Tinof, nahe dran.
      [Formulare]![FORMULAR XY]![Feldname XY]).
      in Amerika und Frankreich
      Was meinst Du, heissen in Englischen und Französischen [Formulare] auch [Formulare]?
      Nö, im EN sind es die [Forms] und im FR sind es ... keine Ahnung

      Wenn ich mich recht entsinne, waren in Office bis Version97 die Makro-Befehle generell ausschließlich in Englisch, danach wurde lokalisert und es kamen dann eben deutsche Makro-Namen hinzu. Da Makros und VBA Interpretersprachen sind, werden sie immer zur Laufzeit "kompiliert" kommt es eben vor, das ein EN Office DE Makros nicht versteht.

      Nun hängt es etwas davon ab, was wo verwendet wird.
      Versuch es mal mit Forms("Formular XY").Controls("Feldname XY")

      Hast Du übrigens wirklich Leerzeichen in den Namen verwendet? Wenn ja wundert es mich, das es überhaupt geht und: Wirklich ganz schlechte Idee, das kann nur Probleme bereiten.
      Olaf Helper

      <Blog> <Xing>
      * cogito ergo sum * errare humanum est * quote erat demonstrandum *
      Wenn ich denke, ist das ein Fehler und das beweise ich täglich

      Comment


      • #4
        Hallo zusammen,

        erstmal vielen Dank für Eure Tipps.

        Nein, ich habe keine Sonderzeichen oder gar Leerzeichen im Variablennamen (ausser ein _ underscore zwischen zwei Wörtern, aber der sollte keine Probleme machen) verwendet.

        Ich habe mittlerweile rausgefunden, dass die Übergabe der Variablen vom Formular aus geklappt hat. Die Aufforderung zur Eingabe des Parameterwertes erschien offensichtlich nur deshalb, weil ich in der Abfrage vorne und hinten trunkiert habe (bei "Kriterien": wie "*" & [TempVars]![Variable XY] & "*"). Irgendwie mochten das die ausländischen Access-Versionen bei Queries nicht. Habe nun in der Query die Trunkierung weggelassen (macht nichts, da im Formular sowieso nur feste Werte aus einem Pulldown-Menü auszuwählen sind und Trunkierung deswegen unnötig ist). Jetzt wird die Variable vom Formular an die Abfrage übergeben und Datensätze entsprechend selektiert.

        Ich möchte mich nochmals bei Euch bedanken und hoffe wieder auf Euren Beistand beim nächsten Problem ;-))

        Stefan

        Comment

        Working...
        X