find and filter with vba
Here are the screenshots:
label names here are important
And Here is the vba code :
'------------------------------------FIND----------------------------------------------
Private Sub cmd_find_Click()
fctfind_a_field
End Sub
Function fctfind_a_field() As String
Dim RecSrcFrmPersIdSql As String
Select Case Me!txtfield.Value
'santral;fabrika_entry;aktif_status;max_km;max_dk;ALL
Case Is = "santral"
RecSrcFrmPersIdSql = "SELECT [tbl_ref_021_1_santral].[santral],[tbl_data_01_10_01_mesafe_limit].[mesafe_limit_id], [tbl_data_01_10_01_mesafe_limit].[santral_id], [tbl_data_01_10_01_mesafe_limit].[fabrika_entry_limit], [tbl_data_01_10_01_mesafe_limit].[aktif_status_id], [tbl_data_01_10_01_mesafe_limit].[max_km], [tbl_data_01_10_01_mesafe_limit].[max_dk], [tbl_data_01_10_01_mesafe_limit].[auto_date], [tbl_data_01_10_01_mesafe_limit].[auto_time]" & _
"FROM [tbl_ref_021_1_santral] INNER JOIN [tbl_data_01_10_01_mesafe_limit] ON [tbl_ref_021_1_santral].[santral_id] = [tbl_data_01_10_01_mesafe_limit].[santral_id]" & _
"WHERE [tbl_ref_021_1_santral].[santral] Like '*' & [Forms]![frm_data_01_10_01_mesafe_limit]![txtfind] & '*';"
Forms!frm_data_01_10_01_mesafe_limit.RecordSource = RecSrcFrmPersIdSql
lbl_filter_color
Case Is = "fabrika_entry"
RecSrcFrmPersIdSql = "SELECT [tbl_data_01_10_01_mesafe_limit].[mesafe_limit_id], [tbl_data_01_10_01_mesafe_limit].[santral_id], [tbl_data_01_10_01_mesafe_limit].[fabrika_entry_limit], [tbl_data_01_10_01_mesafe_limit].[aktif_status_id], [tbl_data_01_10_01_mesafe_limit].[max_km], [tbl_data_01_10_01_mesafe_limit].[max_dk], [tbl_data_01_10_01_mesafe_limit].[auto_date], [tbl_data_01_10_01_mesafe_limit].[auto_time]" & _
"FROM [tbl_data_01_10_01_mesafe_limit]" & _
"WHERE [tbl_data_01_10_01_mesafe_limit].[fabrika_entry_limit] Like '*' & [Forms]![frm_data_01_10_01_mesafe_limit]![txtfind] & '*';"
Forms!frm_data_01_10_01_mesafe_limit.RecordSource = RecSrcFrmPersIdSql
lbl_filter_color
Case Is = "aktif_status"
RecSrcFrmPersIdSql = "SELECT [tbl_data_01_10_01_mesafe_limit].[mesafe_limit_id], [tbl_data_01_10_01_mesafe_limit].[santral_id], [tbl_data_01_10_01_mesafe_limit].[fabrika_entry_limit], [tbl_data_01_10_01_mesafe_limit].[aktif_status_id], [tbl_data_01_10_01_mesafe_limit].[max_km], [tbl_data_01_10_01_mesafe_limit].[max_dk], [tbl_data_01_10_01_mesafe_limit].[auto_date], [tbl_data_01_10_01_mesafe_limit].[auto_time], [tbl_ref_012_1_aktif_status].[aktif_status]" & _
"FROM [tbl_ref_012_1_aktif_status] INNER JOIN [tbl_data_01_10_01_mesafe_limit] ON [tbl_ref_012_1_aktif_status].[aktif_status_id] = [tbl_data_01_10_01_mesafe_limit].[aktif_status_id]" & _
"WHERE [tbl_ref_012_1_aktif_status].[aktif_status] Like '*' & [Forms]![frm_data_01_10_01_mesafe_limit]![txtfind] & '*';"
Forms!frm_data_01_10_01_mesafe_limit.RecordSource = RecSrcFrmPersIdSql
lbl_filter_color
Case Is = "max_km"
RecSrcFrmPersIdSql = "SELECT [tbl_data_01_10_01_mesafe_limit].[mesafe_limit_id], [tbl_data_01_10_01_mesafe_limit].[santral_id], [tbl_data_01_10_01_mesafe_limit].[fabrika_entry_limit], [tbl_data_01_10_01_mesafe_limit].[aktif_status_id], [tbl_data_01_10_01_mesafe_limit].[max_km], [tbl_data_01_10_01_mesafe_limit].[max_dk], [tbl_data_01_10_01_mesafe_limit].[auto_date], [tbl_data_01_10_01_mesafe_limit].[auto_time]" & _
"FROM [tbl_data_01_10_01_mesafe_limit]" & _
"WHERE [tbl_data_01_10_01_mesafe_limit].[max_km] Like '*' & [Forms]![frm_data_01_10_01_mesafe_limit]![txtfind] & '*';"
Forms!frm_data_01_10_01_mesafe_limit.RecordSource = RecSrcFrmPersIdSql
lbl_filter_color
Case Is = "max_dk"
RecSrcFrmPersIdSql = "SELECT [tbl_data_01_10_01_mesafe_limit].[mesafe_limit_id], [tbl_data_01_10_01_mesafe_limit].[santral_id], [tbl_data_01_10_01_mesafe_limit].[fabrika_entry_limit], [tbl_data_01_10_01_mesafe_limit].[aktif_status_id], [tbl_data_01_10_01_mesafe_limit].[max_km], [tbl_data_01_10_01_mesafe_limit].[max_dk], [tbl_data_01_10_01_mesafe_limit].[auto_date], [tbl_data_01_10_01_mesafe_limit].[auto_time]" & _
"FROM [tbl_data_01_10_01_mesafe_limit]" & _
"WHERE [tbl_data_01_10_01_mesafe_limit].[max_dk] Like '*' & [Forms]![frm_data_01_10_01_mesafe_limit]![txtfind] & '*';"
Forms!frm_data_01_10_01_mesafe_limit.RecordSource = RecSrcFrmPersIdSql
lbl_filter_color
Case Is = "ALL"
'function
showall
Forms!frm_data_01_10_01_mesafe_limit!txtfind.Value = ""
'function
lbl_filter_color
End Select
DoCmd.Requery
settingfocusontxt
End Function
'-----now act on label color for letting user know the data is filtered----
Function lbl_filter_color()
Select Case Forms!frm_data_01_10_01_mesafe_limit!txtfind.Value
Case Is <> ""
lbl_filter_status.ForeColor = vbRed
lbl_filter_status.BorderColor = vbRed
lbl_filter_status.Caption = "FILTER ON"
Case Is = ""
lbl_filter_status.ForeColor = vbGreen
lbl_filter_status.BorderColor = vbGreen
lbl_filter_status.Caption = "FILTER OFF"
End Select
End Function
'---------showing all data---filter off--------------
Function showall()
RecSrcFrmPersIdSql = "SELECT [tbl_data_01_10_01_mesafe_limit].[mesafe_limit_id], [tbl_data_01_10_01_mesafe_limit].[santral_id], [tbl_data_01_10_01_mesafe_limit].[fabrika_entry_limit], [tbl_data_01_10_01_mesafe_limit].[aktif_status_id], [tbl_data_01_10_01_mesafe_limit].[max_km], [tbl_data_01_10_01_mesafe_limit].[max_dk], [tbl_data_01_10_01_mesafe_limit].[auto_date], [tbl_data_01_10_01_mesafe_limit].[auto_time]" & _
"FROM [tbl_data_01_10_01_mesafe_limit]" & _
"WHERE [tbl_data_01_10_01_mesafe_limit].[mesafe_limit_id] Like '*';"
Forms!frm_data_01_10_01_mesafe_limit.RecordSource = RecSrcFrmPersIdSql
settingfocusontxt
End Function
'---------------------when form loads set focus on a textbox-----------------------------------
Private Sub Form_Load()
txtfield.Selected(1) = True
settingfocusontxt
End Sub
'---------set focus function ------
Function settingfocusontxt()
Me.txt_santral_id.SetFocus
'copythis
'set focus on text
'settingfocusontxt
End Function
Comments
Post a Comment