Office: WENN-Klausel in Makro mit Abfrage kombinieren

Helfe beim Thema WENN-Klausel in Makro mit Abfrage kombinieren in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo Leute, Ich möchte in meiner Datenbank ein Makro schreiben, dass folgende Funktionen ausführt. Die Abfrage1 mit insgesamt 3 Spalten öffnen. Danach... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von HankBully, 5. September 2023.

  1. HankBully hat Ahnung

    WENN-Klausel in Makro mit Abfrage kombinieren


    Hallo Leute,
    Ich möchte in meiner Datenbank ein Makro schreiben, dass folgende Funktionen ausführt.
    Die Abfrage1 mit insgesamt 3 Spalten öffnen.
    Danach eine Spalte daraus auswerten (Wert <20), wenn ja, dann Abfrage1 schließen, und Formular1 öffnen, wenn nein, dann Abfrage1 schließen und Abfrage2 öffnen.

    Wenn ich das Makro ausführe, dann kommt die Fehlermeldung << Makro kann den angegebenen Namen "Abfrage1" nicht finden. Sie haben möglicherweise ein Steuerelement angegeben, das sich nicht auf dem aktuellen Objekt befand und für das Sie keine Formular- oder Berichtskontext angegeben haben.>>
    Kann ich in einem Makro nur Formular-Felder auswerten? Oder wo liegt mein Fehler?
    Ich habe einen Screenshot des Makros aus Access 2019 beigefügt.

    Vielen Dank für euer Mitdenken und viele Grüße
    Hankbully
     
    HankBully, 5. September 2023
    #1
  2. andyfau
    andyfau Erfahrener User
    Hallo,
    zuerst mal eine grundsätzliche Empfehlung: Vergiss Makros. Das Zusammenspiel von Tabellen, Abfragen, Formularn und Berichten lässt sich, wenn überhaupt nötig, mit VBA wesentlich besser lösen. Dazu ist es aber notwendig sich zuerst grundlegendes Wissen zum Datenbankdesign und Programmlogik anzueignen.
    Access-Tutorial: Lernen Sie Microsoft Access Datenbanken zu erstellen!
    Visual Basic für Applikationen - Das VBA-Tutorial
    Mach dir nicht zuerst Gedanken über einen "Programmablauf", sondern:

    Formuliere die Aufgabe(n), die mit der Datenbank erledigt werden soll(en)
    Welche Daten lege ich in welche Tabellen (ohne Redundanzen) ab?
    Wie stehen diese Daten in Verbindung zueinander (Beziehungen, Schlüsselfelder etc.)(Normalform)
    Wie stelle ich die Daten in Abfragen so zusammen, dass ich sie dann in Formularen/Berichten anzeigen/bearbeiten kann?
    Und, wenn die Anwendung nicht nur für dich persönlich ist, was sollen andere Anwender können/dürfen ohne dass in der DB ein Chaos ausbricht?

    Wenn Du mal eine abgespeckte, datenneutrale Version deiner DB hier hochlädst, kann man vielleicht verstehen was Du tun möchtest. Deine Ausführungen oben sind viel zu allgemein und aus dem Zusammenhang gerissen.
     
    1 Person gefällt das.
  3. HankBully hat Ahnung
    Hallo Andreas,
    Danke für deine Rückmeldung. Mit VBA habe ich mich bisher noch nicht beschäftigt, da meine Datenbanken bzw. deren Auswertungen nicht so komplex waren / sind, dass das bisher notwendig war. Und VBA bietet natürlich auf jeden Fall mehr Möglichkeiten, als das Makro-Angebot. Allerdings ist VBA auch nicht mal schnell auf eine Stunde gelernt. Leider ;-) Wäre natürlich cool.

    Die Struktur beim Erstellen einer Datenbank habe ich glaube ich ganz gut im Griff, meine Tabellen sind in der 3. Normalform, ich habe überall Fremdschlüssel und Primärschlüssel drin, und die Beziehungen sind 1:n. Soweit m:n-Beziehungen bei den aten bestehen würden, habe ich das durch Zwischen-Tabellen in zwei 1:n-Beziehungen aufgelöst. Ich bin natürlich kein Profi mit Datenbanken, aber ein kleines Bißchen Ahnung über das relationelle Datenbank-System habe ich.

    Meine Frage ist zwar allgemein, aber ich finde, doch verständlich.
    Kann ich in einem Makro ein Feld einer Abfrage auswerten und als Entscheidungsgrundlage für eine Wenn-Klausel verwenden?

    Viele Grüße
    HankBully
     
    HankBully, 6. September 2023
    #3
  4. andyfau
    andyfau Erfahrener User

    WENN-Klausel in Makro mit Abfrage kombinieren

    Habe gerade mal ein wenig rumprobiert. Wenn ich den Verweis für die Wenn-Bedingung auf ein Steuerelement, welches den Fokus hat, z.B. in einem geöffneten Formular, lege, funktioniert es. Bei einer jAbfrage edoch kommt der von Dir beschriebene Fehler. Was ja eigentlich auch logisch ist. Denn eine Abfrage liefert als Ergebnis ein komplettes Recordset ohne erstmal den Fokus auf ein bestimmtes Feld, bzw. Datensatz.
     
  5. HankBully hat Ahnung
    Hallo Andreas,
    Vielen Dank für deine Zeit. "Übersetzt" heißt das, das Ergebnis einer Abfrage sieht zwar schön aus, ist aber im Hintergrund in einer Form, die Access dann nicht verwenden kann. Wenn ich nochmal darüber nachdenke, ist das auch aus einem anderem Grund logisch, ich beziehe mich in meinem Makro ja auf die Spalte aus einer Abfrage, und die kann ja zig Zeilen (=Datensätze) haben, wie soll da Access einen Wertevergleich durchführen, das geht natürlich nicht.
    Ich hab in meiner Abfrage eine Summe gebildet, daher hat die nur eine Zeile, aber die Systematik ist natürlich trotzdem falsch. Danke für deine Hilfe.
    Ich muss also entweder ein Summenfeld in einem Formular (das ja auf der Abfrage basieren kann) verwenden, oder vielleicht etwas anderes überlegen, was eleganter ist. Wie du schreibst, mit VBA wäre das sicherlich gut machbar, aber da hab ich leider kaum Ahnung davon.

    Aber nochmal vielen Dank, du hast mir sehr weitergeholfen!
    Viele Grüße und einen schönen Abend
    HankBully
     
    HankBully, 6. September 2023
    #5
    1 Person gefällt das.
Thema:

WENN-Klausel in Makro mit Abfrage kombinieren

Die Seite wird geladen...
  1. WENN-Klausel in Makro mit Abfrage kombinieren - Similar Threads - Klausel Makro Abfrage

  2. WHERE-Klausel

    in Microsoft Access Tutorials
    WHERE-Klausel: WHERE-Klausel Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Mehr... Weniger...
  3. Access SQL: WHERE-Klausel

    in Microsoft Access Tutorials
    Access SQL: WHERE-Klausel: Access SQL: WHERE-Klausel Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Mehr... Weniger...
  4. GROUP BY-Klausel

    in Microsoft Access Tutorials
    GROUP BY-Klausel: GROUP BY-Klausel Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Mehr... Weniger...
  5. FROM-Klausel

    in Microsoft Access Tutorials
    FROM-Klausel: FROM-Klausel Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Mehr... Weniger...
  6. PROCEDURE-Klausel

    in Microsoft Access Tutorials
    PROCEDURE-Klausel: PROCEDURE-Klausel Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Mehr... Weniger...
  7. CONSTRAINT-Klausel

    in Microsoft Access Tutorials
    CONSTRAINT-Klausel: CONSTRAINT-Klausel Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Mehr... Weniger...
  8. ORDER BY-Klausel

    in Microsoft Access Tutorials
    ORDER BY-Klausel: ORDER BY-Klausel Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Mehr... Weniger...
  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