Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Abfrageformular mit mehreren Kriterien

Begonnen von myhanni, August 20, 2010, 22:07:58

⏪ vorheriges - nächstes ⏩

myhanni

Hallo liebe Access Profis!

Ich will ein Abfrageformular erstellen. Dabei soll der User über ein Listenfeld das Prüfdatum wählen können. Über 3 weitere Kontrollkästchen soll die Abfrage weiter eingeschränkt werden können: durch gebraucht und neu kann gewählt werden, ob es sich um eine neues oder ein gebrauchtes Produkt handelt. Wenn es sich um ein neues Produkt handelt, dann soll der Bericht rptNeu, ansonsten rptGebraucht geöffnet werden.
Wenn bei der Prüfung rauskommt, dass das Gewicht des Produktes zu hoch war, wird in der Abfrage im entsprechenden Feld ein ,,x" eingetragen. Durch das Kontrollkästchen fehlerhafte soll es möglich sein, dass nur jene Produkte angezeigt werden, die die Prüfung nicht bestanden haben.

Hab es bis jetzt nur geschafft, dass man über das Listenfeld das Prüfdatum wählen kann. Wie macht man das, damit man die Kontrollkästchen auch mit einbezieht? Und wie kann man beim Listenfeld eine Mehrfachauswahl ermöglichen?

Hab mal eine Beispieldatenbank angefügt.

Wäre toll, wenn mir jemand weiterhelfen könnte.


[Anhang gelöscht durch Administrator]

oma

Hallo,

sorry, aber dein Entwurf ist unverständlich.

in Tabelle Eingabe ist zu einem Datum die Produktart und das Gewicht festgelegt.

Nun willst du in einem ungebundenen Formuar zu einem Datum die Produktart festlegen?

Wenn du einen Datensatz aus der Tabelle drucken willst, kannst du die Tabellendaten im Listenfeld darstellen, einen DS markieren und drucken!

oder willst du alle  neuen bzw alle gebrauchen oder alle mit Gewicht zu hoch in Kombination einer Datumseinschrankung (alle nach/vor  einem gewählten Datum ausdrucken?? ( dann wäre auch ein Optionsfeld nötig und keine 3 Ja/Nein - Felder)

Nenne bitte mal klar deine Auswahlkriterien für den Druck.


Gruß Oma
nichts ist fertig!

database

Hallo,

im Prinzip müsstest du - entsprechend deiner Auswahlen - den SQL-String, den du dem OpenReport-Befehl mitgibst, dynamisch zusammenstellen.
Den Status der Checkboxen fragst du nach -1 (angeklickt) und/oder 0 nicht angeklickt ab. Die Checkboxen solltest du so einstellen, dass sie beim Öffnen des Formulars IMMER den Standardwert 0 besitzen.
Statuslose Checkboxen enthalten den Wert NULL - was wiederum einen dritten Status in deinem SQL-String erfordern würde.

In deinem Beispiel hast du zudem einen Bennennungsfehler bei der Checkbox 'fehlerhafte', du hast das Bezeichungsfeld benamst und nicht die Chekbox.

Verschieden Berichte für die Produktarten benötigst du in der Regel nicht, wenn du als Datenherkunft für den Bericht eine Abfrage verwendest, die ALLE Datensätze liefert und im Code deines 'Öfnnen-Buttons' der SQL-String dynamisch erstellt wird.
Zur Veranschaulichung untenstehendes Beispiel, das du nach Korrektur des Checkboxnamens (K_fehlerhafte) in dein Formular zum Testen einfügen kannst.
(Es wird hier jedoch lediglich der Status der Checkbox 'K_gebraucht' verwendet!)


Option Compare Database
Option Explicit

Private Sub BerichtAnzeigen_Click()

   Dim strSQL As String
   Dim datum As String
   
   datum = Format(Me!Liste0, "\#yyyy-mm-dd\#")
   
   strSQL = "[Prüfdatum]=" & datum
   
   If Me!K_gebraucht = -1 Then
       strSQL = strSQL & " AND [Produktart]='gebraucht'"
   End If
   
   DoCmd.OpenReport "rptNeu", acViewPreview, , strSQL

End Sub

Private Sub Form_Open(Cancel As Integer)

   Me.K_gebraucht = 0
   Me.K_Neu = 0
   Me.K_fehlerhafte = 0

End Sub



Ansonsten bitte auch unbedingt die Hinweise von oma beachten!
Bei einer Optionsgruppe wird der Wert des umgebenden Rahmens abgefragt und dieser Wert als Kriterium verwendet.

HTH
Peter