Office: (Office 2007) Globale Variablen in Abfrage verwenden

Helfe beim Thema Globale Variablen in Abfrage verwenden in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo liebe Access Profis, ich hab mal wieder ein kleine Problem und hoffe auf Hilfe. Ich hab 3 Abfrage erstellt, die jeweils in eine Tabelle alle... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von ChrisWu, 31. März 2011.

  1. Globale Variablen in Abfrage verwenden


    Hallo liebe Access Profis,

    ich hab mal wieder ein kleine Problem und hoffe auf Hilfe.

    Ich hab 3 Abfrage erstellt, die jeweils in eine Tabelle alle Datensätze zwischen zwei Datumsangaben in eine Tabelle schreiben. Jetzt möchte ich das Ganze über ein Modul ablaufen lassen, sprich die drei Abfragen ausführen.
    Problem ist jetzt, dass ich den Datumsbereich dreimal eingeben muss, was nicht sonderlich Benutzerfreundlich ist.
    Gibt es eine Möglichkeit im Modul global über eine Inputbox diese Daten in zwei Variable zu schreiben und diese dann in allen drei Abfrage zu verwenden?

    Bisher war ich erfolglos diese Variable in meine Abfrage einzubauen.

    Vielen Dank schon mal für eure Hilfe.

    Gruß Christian

    :)
     
    ChrisWu, 31. März 2011
    #1
  2. In der Abfrage kannst Du eine Funktion einbauen, die den Datumswert zurückgibt. Unmittelbar die Variable einsetzen geht nicht, weil Jet mit einer VBA-Variablen nix anzufangen weiß.

    Code:
    In der Abfrage setzt Du dann "MeinDatum()" ein, aber ohne Gänsefüße.

    Du kannst alternativ die SQL-Anweisung in VBA zusammensetzen und dabei direkt die Variable verwenden.
     
    achtelpetit, 2. April 2011
    #2
  3. Hallo
    Klicke auf den Link in meiner FussZeile nach Meine Doc
    und lies da auf seite: 73 (5.3.12 Variablen in Abfragen Verwenden)
     
    Lanz Rudolf, 2. April 2011
    #3
  4. Globale Variablen in Abfrage verwenden

    Vielen Dank für eure Hilfe,

    ich habe es hinbekommen, allerdings taucht dabei ein neues Problem auf!
    Ich habe in der Funktion das Datum als InputBox deklariert und muss jetzt in einer Abfrag das Datum 3x mal eingeben bevor meine Abfrage ausgeführt wird!
    Die Funktion sieht wie folgt aus:

    Public Function date1() As Date
    date1 = InputBox("Bitte Startdatum eintragen!")
    End Function

    Gibt es hierfür eine sinnvolle Erklärung?

    Vielen Dank vorab.

    Gruß Christian
     
    ChrisWu, 4. April 2011
    #4
  5. Hi,

    wo ist da die globale Variable? Deine Funktion fragt jedesmal, wenn sie aufgrufen wird, per Inputbox den Wert ab. Wie befohlen.

    Du fährst besser, wenn du so vorgehst:
    • Datum einmalig in einem Formular abfragen
    • dieses Datum per VBA in die SQL der Abfragen einbauen. Das ist ein Einzeiler pro Abfrage:
      Currentdb.QueryDefs("DeineAbfrage").SQL = " ... WHERE Datumsfeld = #" & Format(Forms!Datumsformular!txtDatumstextfeld, "yyyy-mm-dd") & "#"

    Den Rumpf der SQL kannst du du aus der bisherigen Abfrage auslesen und anstelle der ... einfügen.
     
    Atrus2711, 4. April 2011
    #5
  6. Hallo
    lies in Meine Doc auch auf seite 73 (5.3.14 Eingabe bei InputBox Prüfen)
    und Seite 74 (5.3.15 Parameter Eingabe mit InputBox und möglichkeit zur weiter verwendung der Parameter)
     
    Lanz Rudolf, 4. April 2011
    #6
  7. FW
    FW
    ... oder Du steuerst das über über einen weiteren Parameter: Code:
    und das in den Abfragen entsprechend berücksichtigen (erste Abfrage mit Parameter True, alle anderen mit Parameter False)...
     
  8. Globale Variablen in Abfrage verwenden

    Hallo Atrus,
    okay ich hab verstanden, dass ich wenn ich den Namen der Variablen in der Abfrage einbau jedesmal die Funktion aufruf, das war nicht mein Ziel!
    Ich verstehe noch nicht so ganze die Funktionalität der Currentdb.QueryDefs.
    Ich habe folgenden SQL String:
    INSERT INTO
    SELECT
    FROM
    WHERE (((tbl_Arbeitszeit.Beginntam) Between date1() And date2()) AND ((tbl_Arbeitszeit.Kategorie) Like "*" & [Welches Projekt?] & "*") AND ((tbl_Arbeitszeit.Ort) Not Like "Reise"))
    ORDER BY

    Für date1 und date2 möchte ich jetzt immer die Variable verwenden, da diese von 3 Abfragen benötigt wird.

    Warum kann ich in meinem Modul nicht einfach über zwei InputBoxen date1 und date2 festlegen und diese dann in den 3 Abfrgaen verwenden?

    Gruß Christian
     
    ChrisWu, 4. April 2011
    #8
  9. Hallo Rudi,

    danke für deine Antwort, aber aus den Unterlagen ist mir nicht klar geworden wie ich es schaffe die nun angelegte Variable in dem SQL String der Abfrage zu Verwenden!
    Geht das überhaupt? Bei dir heisst es nur bedingt möglich.

    gruß Christian
     
    ChrisWu, 4. April 2011
    #9
  10. Hi,

    jetzt komm doch mal von den sch*~ Inputboxen runter. Die sind der allereltzte Weg, um Daten vom User abzufragen, v.a. weil man auf Fehleingaben nicht ordentlich reagieren kann und keine Kontrolle über die eingegebenen Werte hat.

    Letztlich willst du doch eine Anfügeabfrage ausführen, die an bestimmten Stellen variable Werte hat. Diese variablen Werte sind aber pro Ausführung fest, nämlich auf die jeweiligen "Laufwerte" eingestellt. Daher ist es ein denkbarer Ansatz, die variablen Werte "jedesmal" als feste Werte in die Abfrage zu schreiben.

    Und dazu dient Currentdb.QUeryDefs("Abfragename").sql. Es schreibt die Abfrage neu - mit den eingesetzten Werten. Im Prinzip ist das so, als würdest du die Abfrage jedesmal manuell anpassen.

    Alternativ dazu sind Parameterabfragen möglich; da müssen die Parameter dann mit Werten belegt werden.
     
    Atrus2711, 4. April 2011
    #10
  11. Hallo
    dann lies einfach ein wenig weiter
    auf Seite :75 (5.3.16 Benutzer-Eingabe mit einem kleinen Formular)
    und
    (Abfrage mit Zwischen (Begin/Ende) als Parameter)
     
    Lanz Rudolf, 5. April 2011
    #11
  12. Hallo!

    Ich hätte noch eine Alternative zu den von Martin in Beitrag #10 erwähnten Varianten: die Filterwerte in einer lokalen (oder temporären - aber unbedingt user-bezogenen) Tabelle abspeichern und diese Tabelle zum Filtern in der Abfrage verwenden.
    Dann kann man sogar die zuletzt genutzten Werte beim Öffnen des Formulars zur Filtereingabe als Vorschlag anbieten.

    mfg
    Josef
     
    Josef P., 5. April 2011
    #12
  13. Globale Variablen in Abfrage verwenden

    Hallo,

    okay ich hab verstanden, dass Inputboxen nicht das wahre sind und sehe die Nachteile auch!
    Ich habe nun den Versuch gestartet, das Datum in eine Tabell zu schreiben, mit einem Formulat auszulesen und die Werte aus dem Formular in meinen Abfragen zu verwenden.
    Kann ich das per VBA die Werte in die Abfrgae zu ünermehmen auch irgendwie umgehen indem ich sie direkt in der Abfrage in mein SQL einbau?

    Gruß Christian
     
    ChrisWu, 9. April 2011
    #13
  14. Hallo, danke euch hat funktioniert!!

    Gruß Chris
     
    ChrisWu, 9. April 2011
    #14
Thema:

Globale Variablen in Abfrage verwenden

Die Seite wird geladen...
  1. Globale Variablen in Abfrage verwenden - Similar Threads - Globale Variablen Abfrage

  2. Kontextmenü global deaktivieren

    in Microsoft Access Hilfe
    Kontextmenü global deaktivieren: Hallo, ich mal wieder Meine Vereins-DB ist für die Anwender soweit zum Test freigegeben. Ich möchte aber das Kontextmenü deaktivieren, sodaß niemand in die Entwurfansicht umschalten kann. In der...
  3. Prozeduren über eine globale Vorlage ausführen

    in Microsoft Word Hilfe
    Prozeduren über eine globale Vorlage ausführen: Hallo! Ich möchte gerne verschiedene Prozeduren in einer zentralen (globalen) Vorlage erstellen und auf diese Prozeduren bzw Funktionen mit jedem neuen Dokument insbesondere neuen Dokumenten, die...
  4. Globale Formel für Formatierung

    in Microsoft Excel Hilfe
    Globale Formel für Formatierung: Moin, Ich habe eine Excel-Tabelle in welcher in jeder Zeile 4 Grenzwerte beschrieben sind. Ich würde nun gerne eine Formel haben, die mir für jede Zeile die Werte je nach Grenzwert einfärbt....
  5. "Globale" Zahlenformatierung

    in Microsoft Excel Hilfe
    "Globale" Zahlenformatierung: Servus zusammen, ich weiß nicht, wie ich den Titel besser hätte nennen sollen. Und zwar bastel ich gerade an einer Tabelle für ein Spiel und mein erstes Problem (aufgrund von Verständlichkeit...
  6. Globale Variable benutzen um Access Queries zu filtern

    in Microsoft Access Hilfe
    Globale Variable benutzen um Access Queries zu filtern: Hallo liebe Pros und Community, ich möchte gerne eine globale Variable nutzen um eine Filterung in einer Query vorzunehmen. Zur Info: Ich benutze Acces 2016 in 32 Bit. Ich habe die globale...
  7. Globale Variablen "arbeitsmappenweit" deklarieren?

    in Microsoft Excel Hilfe
    Globale Variablen "arbeitsmappenweit" deklarieren?: Hallo, ich programmiere gerade eine VBA-Anwendung in Excel 2013, für die Konstanten und Variablen mit Gültigkeit über die gesamte Arbeitsmappe hinweg schön wären. Die Anwendung nutzt einerseits...
  8. Globale Variable definieren

    in Microsoft Access Hilfe
    Globale Variable definieren: Wie kann ich einen Wert zwischenspeichern, der auch noch nachdem der 'Sub' Code verlassen ist noch zur Verfügung steht? Mit 'Public' funktionierts nicht richtig, obwohl ich Public im...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden