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
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
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
Danke für die schnellen Antworten. Werde ich mir gleich ansehen bzw. ausprobieren. Dann melde ich mich nochmal.
Grüße
Winfried
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