SQl-Query zeigt immer nur den ersten Datensatz an?

cheberdy

Neuer Benutzer
Beiträge
1
Hallo,
Ich habe ein Formular, das Datensätze aus Tabelle Artikel bezieht. Ich möchte das Formular nach den Datensätzen in einer Abfrage, Monate, filtern. Um anzugeben welche Datensätze gefiltert werden sollen, verwende ich zwei Kombinationsboxen, Startmonat und Endmonat, um einen Range zu definieren. Um sicherzugehen, dass die Datensätze aus der Abfrage Monate sind, werden die Werte der Jahre verglichen. Mir wird aber immer nur der erste Datensatz auf den der folgende Code zutrifft angezeigt obwohl es mehr sind.
Das ist der Code:

Private Sub Endmonat_AfterUpdate()
Dim strSQL As String

strSQL = "SELECT * FROM Jahr WHERE Monat='" & Startmonat.Value & "' And '" & Endmonat.Value & "' And Jahrvalue IN (SELECT Jahrvalue FROM Monate)"


Me.RecordSource = strSQL

Me.Refresh
End Sub

End Sub
Gibt es Lösungsmöglichkeiten?
 
Werbung:
Das ergibt für mich gar keinen Sinn, warum jetzt eine Tabelle "Monate" mit Jahreswerten?

Dein Problem liegt mit Sicherheit irgendwo in
Code:
Monat='" & Startmonat.Value & "' And '" & Endmonat.Value & "'
Das "And" müsste doch von SQL interpretiert werden und dann ist Endmonat.Value keine Gleichung.
 
Werbung:
Gemeint ist vielleicht
Code:
where Monat between '" & Startmonat.Value & "' And '" & Endmonat.Value & "'
wobei die Nutzung der Hochkommata verdächtig ist.
Werden hier Nummern verwendet oder etwa Monatsnamen?
Wenn es Nummern sind, sollten sie auch so typisiert sein und Hochkomma gehören dann nicht dort hin.
Das "jahrvalue in (Select Jahrvalue .." ist auch dürftig, da es mehrere, verschiedene Jahre ergeben kann und sogar mehrere identische..
 
Zurück
Oben