Ich habe ein Formular mit mehreren Kombinationsfelder, die einen Bericht entsprechend den Werten in meinen Kombinationsfeldern öffnet. Das funktioniert, aber ich wurde gebeten, dem Feld Gültigkeitsdatum eine Option zu geben, damit ein Datumsbereich eingegeben werden kann.Zwischen zwei Daten in vba für ms Zugriff 2010
Ich habe zwei Textfelder (txtReqCreationStartDate
und txtReqCreationEndDate
) für Anfang und Ende hinzugefügt.
Ich habe versucht, die zwischen ... und in der Abfrage, aber dann meine Combo-Boxen funktionieren nicht.
Ich habe nie SQL verwendet, aber das online gefunden und es in den Code für den Apply Filter on click Button eingegeben, aber ich bekomme alle Datensätze. Andere haben versucht zu helfen, aber ich bekomme immer alle Unterlagen.
Hier ist der gesamte Code für das On Click-Ereignis.
Private Sub cmdVacanciesWithNoRequisitionParameters_Click()
On Error GoTo cmdVacanciesWithNoRequisitionParameters_Click_Err
strSQL = "SELECT * FROM qryVacanciesWithNoRequisition WHERE " _
& "DateValue([Effective Date]) Between #" & Format([txtReqCreationStartDate], "yyyy-mm-dd") & "# And #" & Format([txtReqCreationEndDate], "yyyy-mm-dd") & "#;"
'Person Number
If Not IsNull(Me.cboPersonNumber) Then
strFilter = strFilter & " AND [Person Number] Like """ & Me.cboPersonNumber & """ "
End If
'Person Name
If Not IsNull(Me.cboPersonName) Then
strFilter = strFilter & " AND [Person Name] Like """ & Me.cboPersonName & """ "
End If
'Job Code
If Not IsNull(Me.cboJobCode) Then
strFilter = strFilter & " AND [Job Code] Like """ & Me.cboJobCode & """ "
End If
'Person Number
If Not IsNull(Me.cboBusinessUnit) Then
strFilter = strFilter & " AND [Business Unit] Like """ & Me.cboBusinessUnit & """ "
End If
'Department
If Not IsNull(Me.cboDepartment) Then
strFilter = strFilter & " AND [Department] Like """ & Me.cboDepartment & """ "
End If
'Supervisor
If Not IsNull(Me.cboSupervisor) Then
strFilter = strFilter & " AND [Supervisor] Like """ & Me.cboSupervisor & """ "
End If
'Job Title
If Not IsNull(Me.cboJobTitle) Then
strFilter = strFilter & " AND [Job Title] Like """ & Me.cboJobTitle & """ "
End If
'If the report is closed, open the report
If SysCmd(acSysCmdGetObjectState, acReport, "rptVacanciesWithNoRequisition") <> acObjStateOpen Then
DoCmd.OpenReport "rptVacanciesWithNoRequisition", acPreview, qryVacanciesWithNoRequisition
End If
'if report was open, use filter
With Reports![rptVacanciesWithNoRequisition]
.Filter = Mid(strFilter, 6)
.FilterOn = True
End With
cmdVacanciesWithNoRequisitionParameters_Click_Exit:
Exit Sub
cmdVacanciesWithNoRequisitionParameters_Click_Err:
MsgBox Error$
Resume cmdVacanciesWithNoRequisitionParameters_Click_Exit
End Sub
Vielen Dank im Voraus für die Hilfe.
* (Sie müssen Ihre Formatierung ein wenig mehr aufräumen, bitte. Nicht alle "sub" erscheinen als "code". ### Davon abgesehen würde ich vorschlagen, dass du 'Debug.print' den' strFilter', nachdem du ihn komplett generiert hast, damit du * sehen * was kannst Die fertige Zeichenfolge enthält. ## Also, warum benutzt du 'Mid (strFilter, 6)'? ## Wenn Sie "alle Datensätze erhalten", muss mit Ihrem Filter etwas nicht in Ordnung sein. Mach weiter, du solltest * grundsätzlich auf dem richtigen Weg sein. –