Abfragekriterium = Wahr setzen aus Formular heraus

Hallo Gemeinde,

ich habe ein Formular zum suchen. Die gefundenen Datensätze kann ich mit Ja/Nein markieren.

Per Button wird eine Abfrage ausgeführt.

Leider muss ich jedes Mal manuell für das Kriterium „Wahr“ eingeben, die Abfrage speichern und dann aus dem Formular nochmals ausführen um mir alle markierten Datensätze anzuzeigen.

Was für einen Code muss ich dem Button zufügen, dass in der Abfrage das Kriterium „Wahr“ hinzugefügt wird?

Standardmäßig soll jedoch nichts im Kriterium vermerkt sein, nur für den Fall, dass ich mir alle markierten Datensätze anzeigen lassen will.

Grüsse und Dank im Voraus für Eure Lösungshinweise aus Osnabrück,
Hans

Hallo,

wie wäre es wenn Du über den Button ein Filter setzt?

Schau mal nach „DoCmd.ApplyFilter“. Das Filter entspricht der WHERE-Klausel Deiner Abfrage.

DoCmd.ApplyFilter , „Tabelle_wie_auch_immer.Name_Markierungsfeld = True“

MfG,

ujk

Hallo Gemeinde,

Hallo Pfarrer,

ich habe ein Formular zum suchen. Die gefundenen Datensätze
kann ich mit Ja/Nein markieren.

schön

Per Button wird eine Abfrage ausgeführt.

warum? das ist überflüssig! Dein Formular basiert doch auf einer Tabelle/Abfrage?

Leider muss ich jedes Mal manuell für das Kriterium „Wahr“
eingeben, die Abfrage speichern und dann aus dem Formular
nochmals ausführen um mir alle markierten Datensätze
anzuzeigen.

überflüssig

Was für einen Code muss ich dem Button zufügen, dass in der
Abfrage das Kriterium „Wahr“ hinzugefügt wird?

nutze den Button für einen Filter:

me.Filter = „[ja_nein_Feld] = true“
me.Filteron = true
me.requery

das ist alles was du benötigst, plus einen zweiten Button, um den Filter auszuschalten.

me.Filteron = false
me.requery

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

nutze den Button für einen Filter:

me.Filter = „[ja_nein_Feld] = true“
me.Filteron = true
me.requery

Hallo Wolfgang,

ich habe das genau so beim Ereignis Klick in den VBA Code kopiert. Leider passiert gar nichts…
(natürlich mit meinem Feldnamen SerBrief)

(

Grüsse aus Osnabrück,
Hans

Hallo Hans,

ich habe das genau so beim Ereignis Klick in den VBA Code
kopiert. Leider passiert gar nichts…

ich gehe davon aus:

  • Hauptformular (Darstellung: Endlosformular)
  • im Kopf-/Fußbereich ist die Taste
  • Datenbasis ist eine Tabelle/Abfrage
  • bei Abfrage: keine Kriterien
  • das ja/nein Feld ist in der Tabelle

was ist bei dir anders? Ich bitte um genaue Beschreibung!

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo Wolfgang,

genau so sieht es bei mir aus.

  • Hauptformular (Darstellung: Endlosformular)
  • im Kopfbereich ist die Taste
  • Datenbasis ist eine Tabelle und heisst ‚Mitglieder‘
  • bei Abfrage: keine Kriterien, Abfrage ist an ‚Mitglieder‘ gebunden und heisst ‚abfr_deckblatt_seriendruck‘
  • das ja/nein Feld ist in der Tabelle

Aus dem Formular löse ich die Abfrage per Button mit folgenden Code:

Dim stDocName As String

stDocName = „abfr_deckblatt_seriendruck“
DoCmd.OpenQuery stDocName, acNormal, acEdit

Zum einen habe ich Deinen vorgeschlagenen Code direkt nach der Zeile

‚Private Sub Befehl_abfr_sereindruck_Click()‘

geschrieben, zum anderen habe ich ihn nach der Zeile

‚DoCmd.OpenQuery stDocName, acNormal, acEdit‘

ausprobiert. Bei keinem der beiden Versuche stand dann beim überprüfen der Abfrage im Kriterium ‚True‘.

Grüsse aus Osnabrück,
Hans

Hallo Hans,

Aus dem Formular löse ich die Abfrage per Button mit folgenden
Code:

ähm, du brauchst KEINE Abfrage mehr, das Ergebnis siehst du im aktuellen Formular, denn dort wird der Filter direkt angewandt!

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

ähm, du brauchst KEINE Abfrage mehr, das Ergebnis siehst du im
aktuellen Formular, denn dort wird der Filter direkt
angewandt!

… doch, die Abfrage brauche ich, weil das die Quelle für ein Word Seriendruck ist.

… doch, die Abfrage brauche ich, weil das die Quelle für ein
Word Seriendruck ist.

ok, dann hast du mehrere Möglichkeiten:

  1. Möglichkeit:

stDocName = „abfr_deckblatt_seriendruck“
DoCmd.OpenQuery stDocName,"[SerBrief] = true"

das hat den Nachteil, dass die Abfrage nur im Moment der Ansicht so gefiltert ist, also nicht, wenn du sie als Datenquelle für deinen Word?-Serienbrief nutzt

  1. Möglichkeit:
    in der Abfrage das Kriterium fest eingeben.
    Spalte/Feld = SerBrief
    Kriterium = True/Wahr

Hat den Vorteil, wenn du extern per Word?-Serienbrief drauf zugreifst, werden immer die markierten Adressen genutzt.

Hilfreich wären dann zwei zusätzliche Tasten: [alle markieren] und [alle Markierungen aufheben] die du leicht per SQL-Anweisung und/oder Abfrage erstellen kannst.

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo Wolfgang

  1. Möglichkeit:

stDocName = „abfr_deckblatt_seriendruck“
DoCmd.OpenQuery stDocName,"[SerBrief] = true"

Erzeugt die Fehlermeldung:
Fehler beim Kompilieren:
Falsche Anzahl an Argumenten oder ungültige Zuweisung zu einer Eigenschaft. (Fehler 450)

  1. Möglichkeit:
    in der Abfrage das Kriterium fest eingeben.
    Spalte/Feld = SerBrief
    Kriterium = True/Wahr

Kann ich nicht machen, da ich Datensätze suche und dann erst markiere um sie einer Sereindruckquelle temporär hinzu zu fügen.

Grüsse aus Osnabrück,
Hans

Hallo ujk,

das hat leider nicht geklappt.

Ich löse die Abfrage aus dem Formular per Button mit

stDocName = „abfr_deckblatt_seriendruck“
DoCmd.OpenQuery stDocName, acNormal, acEdit

aus.

Egal wo ich DoCmd.ApplyFilter eingebaut habe, funktionierte es leider nicht.

Grüsse aus Osnabrück,
Hans