Anton T
И не будет работать. У тебя же нет формы с именем frm. Как же оно рабoтать должно, если такого объекта нет?
Мой код надо было использовать в модуле. В Sub fFilForm. На change контролов поставь только вызов sub с передачей всех параметров.
На будущее, старайся избегать кирилицы в коде, в названиях объектoв и в названиях полей и таблиц базы данных. Не у всех может показывать нормально. И не всегда может работать нормально. Даже если неправильно будет работать один из ста компьютеров, это не значит, что именно он не попадется первым. И будешь гадать, отчего не работает.
[more=Код]
Код:
Sub fFilForm(strFiltr As String, strSql As String, strSql1 As String, frm As Form, strFieldName As String)
On Error GoTo Err_
Dim strTemp as String
If frm.Поле1 <> "" Then
strTemp = "WHERE [Ф] LIKE '" & strFiltr & "*'"
End If
If frm.Поле3 <> "" Then
If InStr(strTemp, "WHERE") > 0 Then
strTemp = strTemp & " AND [И] LIKE '" & strFiltr & "*'"
Else
strTemp = "WHERE [И] LIKE '" & strFiltr & "*'"
End If
End If
If frm.Поле5 <> "" Then
If InStr(strFiltr, "WHERE") > 0 Then
strTemp = strTemp & " AND [О] LIKE '" & strFiltr & "*'"
Else
strTemp = "WHERE [О] LIKE '" & strFiltr & "*'"
End If
End If
frm.RecordSource = strSql & strTemp & " " & strSql1 & ";"
Exit_:
Exit Sub
Err_:
MsgBox Err.Description
Err.Clear
End Sub
И не будет работать. У тебя же нет формы с именем frm. Как же оно рабoтать должно, если такого объекта нет?
Мой код надо было использовать в модуле. В Sub fFilForm. На change контролов поставь только вызов sub с передачей всех параметров.
На будущее, старайся избегать кирилицы в коде, в названиях объектoв и в названиях полей и таблиц базы данных. Не у всех может показывать нормально. И не всегда может работать нормально. Даже если неправильно будет работать один из ста компьютеров, это не значит, что именно он не попадется первым. И будешь гадать, отчего не работает.
[more=Код]
Код:
Sub fFilForm(strFiltr As String, strSql As String, strSql1 As String, frm As Form, strFieldName As String)
On Error GoTo Err_
Dim strTemp as String
If frm.Поле1 <> "" Then
strTemp = "WHERE [Ф] LIKE '" & strFiltr & "*'"
End If
If frm.Поле3 <> "" Then
If InStr(strTemp, "WHERE") > 0 Then
strTemp = strTemp & " AND [И] LIKE '" & strFiltr & "*'"
Else
strTemp = "WHERE [И] LIKE '" & strFiltr & "*'"
End If
End If
If frm.Поле5 <> "" Then
If InStr(strFiltr, "WHERE") > 0 Then
strTemp = strTemp & " AND [О] LIKE '" & strFiltr & "*'"
Else
strTemp = "WHERE [О] LIKE '" & strFiltr & "*'"
End If
End If
frm.RecordSource = strSql & strTemp & " " & strSql1 & ";"
Exit_:
Exit Sub
Err_:
MsgBox Err.Description
Err.Clear
End Sub