Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: wbks06 am Juni 18, 2015, 20:31:36

Titel: Selektive Abfrage mit Kontrollkästchen
Beitrag von: wbks06 am Juni 18, 2015, 20:31:36
Hallo an alle,

ich habe eine Tabelle ,,ReferenzenMaster" mit diversen Feldern die vergangene Projekte beschreiben (Land, Titel, Auftraggeber, BeschreibungProjekt, BeschreibungLeistungen). Darunter sind auch 18 ja/nein Felder zu bestimmten Leistungskomponenten (z.B. Betrieb, Design, Training, etc.). Insgesamt sind es derzeit rund 130 Datensätze.

Nun möchte ich eine standardisierte Suche einrichten nach Projekten, die bestimmte Leistungskomponenten beinhalten. Also z.B. alle Projekte in denen u.a. Training durchgeführt wurde. Diese Projekte/Datensätze sollen dann in einer neuen Abfrage (qryReferenzenSuche – identische Struktur wie ReferenzenMaster) dargestellt werden.

Dafür habe ich ein ungebundenes Formular angelegt (frmReferenzenSuche) mit 18 ungebundenen Kontrollkästchen.  Die Auswahl soll also durch Anklicken eines oder mehrerer Kästchen (Leistungskomponenten) erfolgen. Für den Button ,,Suche starten" habe ich bislang die folgende Ereignisprozedur:

Private Sub Befehl64_Click()
Dim frm As Form
Set frm = Screen.ActiveForm
Dim strKrit As String

If Not IsNull(frm!Betrieb) Then strKrit = strKrit & " And Betrieb = " & frm!Betrieb
If Not IsNull(frm!Design) Then strKrit = strKrit & " And Design = " & frm!Design
If Not IsNull(frm!Training) Then strKrit = strKrit & " And Training = " & frm!Training

If Len(strKrit) > 0 Then
strKrit = Mid(strKrit, 6)
    'sql in die Abfrage qryReferenzenSuche schreiben
        CurrentDb.QueryDefs(qryReferenzenSuche).SQL = "select * from " & tblReferenzenMaster & " where " & " in(" & frmReferenzenSuche & ")"
    'Abfrage öffnen.
    DoCmd.OpenQuery "qryReferenzenSuche"
  Else
    MsgBox "Keine Auswahl getroffen!", vbInformation
  End If
End Sub

Wenn ich kein Kästchen anklicke, kommt ,,keine Auswahl getroffen", ( ;)) – Das passt.
Wähle ich ein oder mehrere Kästchen erscheint ,,Element in dieser Auflistung nicht gefunden" und das Debuggen verweist auf den oben markierten Teil.

Ich habe schon eine Menge recherchiert und rumprobiert, allmählich bin ich am Verzweifeln... :(

Zusätzlich zu der Auswahl durch 1 bis n Kontrollkästchen soll auch eine Auswahl durch ein Dropdown-Feld "Land" (Länderliste als separate Tabelle schon angelegt) und/oder einen zurückliegenden Zeitraum (Projektende ist weniger als X Jahre her) Teil des Suchformulars sein. Aber das ist ein 2. Schritt, Hauptsache das mit den Kontrollkästchen funktioniert erst einmal.

Wer hat dazu eine Idee und kann mir helfen?

Danke schon mal im Voraus.

Winfried
Titel: Re: Selektive Abfrage mit Kontrollkästchen
Beitrag von: HB9876 am Juni 18, 2015, 21:30:20
Hallo,
ich habe nach dieser Loesung schon mehrere Datenbank erstellt, was die Suchfunktion angeht.

http://www.office-loesung.de/ftopic13271_0_0_asc.php (http://www.office-loesung.de/ftopic13271_0_0_asc.php)

Fuer mich eine gute Loesung und warum das Rad neu erfinden.

Gruss

Jens
Titel: Re: Selektive Abfrage mit Kontrollkästchen
Beitrag von: database am Juni 18, 2015, 21:34:45
Hallo,

... CurrentDb.QueryDefs(qryReferenzenSuche).SQL = "select * from " & tblReferenzenMaster & " where " & " in(" & frmReferenzenSuche & ")" ...

das ist kein auswertbarer SQL-String

Weise den Kontrollkästchen als Standardwert 0 zu, dadurch werden diese beim Formularöffnen leer angezeigt und nicht ausgegraut, dann ...

If frm!Betrieb = -1 Then strKrit = strKrit & " And Betrieb = -1"
If frm!Design = -1 Then strKrit = strKrit & " And Design = -1"
If frm!Training = -1 Then strKrit = strKrit & " And Training = -1"

und ...

CurrentDb.QueryDefs("qryReferenzenSuche").SQL = "select * from tblReferenzenMaster where ID >0" & strKrit

ID ersetzt du durch den Namen deines Primärschlüssels und den Namen deiner Abfrage in Gänsefüßchen!

Sollte funktionieren
Titel: Re: Selektive Abfrage mit Kontrollkästchen
Beitrag von: wbks06 am Juni 19, 2015, 08:43:05
Danke für die schnellen Antworten. Werde ich mir gleich ansehen bzw. ausprobieren. Dann melde ich mich nochmal.
Grüße
Winfried
Titel: Re: Selektive Abfrage mit Kontrollkästchen
Beitrag von: wbks06 am Juni 22, 2015, 08:44:57
Hallo Jens,

super Sache! Hier allerdings noch eine Frage: wie mache ich das, wenn ich beim Datum wie folgt nach DS suchen möchte:

Feldeinträge "End_Date" nach bzw. nicht vor dem Suchdatum, also z.B. alle DS, deren End_Date nach dem 01.05.2010 liegt. Das Suchdatum ist dabei das manuell einzutragende Datum.

Danke schon mal im Voraus.

Winfried