ник: mixail
Снайп, по твоей ссылке как раз то, что нужно))) Но там используется подформа у меня же нужно сделать это по одной форме пока код следующий (но он не работает, указывая ошибку в строчке - :
If strFilter = "" Then
Me![название формы].Form.RecordSource = "SELECT [название формы].* FROM [название формы];"
End If
End Function
|
А весь код выглядит так пока что:
Option Compare Database
Public asd1 As String
Public asd2 As String
Public asd3 As String
Public asd4 As String
Public asd5 As String
Option Explicit
Private Function FilterBasa1()
Dim strFilter As String
strFilter = ""
If asd1 <> "" Then
strFilter = "[LINE] Like '" & asd1 & "*'"
End If
If asd2 <> "" Then
If strFilter = "" Then
strFilter = "[PRODUCEDBY] Like '" & asd2 & "*'"
Else
strFilter = strFilter & " AND [PRODUCEDBY] Like '" & asd2 & "*'"
End If
End If
If asd3 <> "" Then
If strFilter = "" Then
strFilter = "[TYPE] Like '" & asd3 & "*'"
Else
strFilter = strFilter & " AND [TYPE] Like '" & asd3 & "*'"
End If
End If
If asd4 <> "" Then
If strFilter = "" Then
strFilter = "[PROCESSING_COMPANY] Like '" & asd3 & "*'"
Else
strFilter = strFilter & " AND [PROCESSING_COMPANY] Like '" & asd3 & "*'"
End If
End If
If strFilter = "" Then
Me![название формы].Form.RecordSource = "SELECT [название формы].* FROM [название формы];"
End If
End Function
Private Sub Form_Load()
asd1 = ""
asd2 = ""
asd3 = ""
asd4 = ""
asd5 = "ClientForFilter"
End Sub
Private Sub ClearAll_Click()
Me!ClientForFilter = Null
Me!TypeLine = Null
Me!Processing = Null
Me!ProducedComp = Null
Call filterBasa(asd5)
End Sub
Private Sub ClientForFilter_Change()
asd5 = "ClientForFilter"
Call filterBasa("ClientForFilter")
End Sub
Private Sub ProducedComp_Change()
asd5 = "ProducedComp"
Call filterBasa("ProducedComp")
End Sub
Private Sub Type_Change()
asd5 = "TypeLine"
Call filterBasa("TypeLine")
End Sub
Private Sub Processing_Change()
asd5 = "Processing"
Call filterBasa("Processing")
End Sub
Private Function filterBasa(bnm As String)
Me!ClientForFilter.SetFocus
If Nz(Me!ClientForFilter.Text, 0) = 0 Then
asd1 = ""
Else
asd1 = Me!ClientForFilter.Text
End If
Me!TypeLine.SetFocus
If Nz(Me!TypeLine.Text, 0) = 0 Then
asd2 = ""
Else
asd2 = Me!TypeLine.Text
End If
Me!Processing.SetFocus
If Nz(Me!Processing.Text, 0) = 0 Then
asd3 = ""
Else
asd3 = Me!Processing.Text
End If
Me!ProducedComp.SetFocus
If Nz(Me!ProducedComp.Text, 0) = 0 Then
asd4 = ""
Else
asd4 = Me!ProducedComp.Text
End If
Call FilterBasa1
Me(bnm).SetFocus
Me(bnm).SelStart = Me(bnm).SelLength
End Function
|