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]
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
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