powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ADO.Метод Find.Не удается найти запись по условию Find "Field1=' ' and Field2=' ' "
9 сообщений из 9, страница 1 из 1
ADO.Метод Find.Не удается найти запись по условию Find "Field1=' ' and Field2=' ' "
    #32412887
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот код. Почему не работает?

RsSt.Find "Field1='"& TetxBox1.Text & "'" & " and Field2='"&Textbox2.Text

Пишет ошибку "Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт с друг другом".

Поля текстовые , ошибок в именах полей нет. Одинарные кавычки вроде ставлю. Пробовал заключить имена полей в [] , не помогло.
...
Рейтинг: 0 / 0
ADO.Метод Find.Не удается найти запись по условию Find "Field1=' ' and Field2=' ' "
    #32412903
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из Гетца
"Со сложными предложениями Where метод Find не справляется. Максимум на что он способен, это понять выражение, состоящее из имени поля, оператора сравнения и значения."
Наверно, он AND не понимает:)
...
Рейтинг: 0 / 0
ADO.Метод Find.Не удается найти запись по условию Find "Field1=' ' and Field2=' ' "
    #32412906
Roalex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А закрывающий апостроф после второго тектбокса есть?
...
Рейтинг: 0 / 0
ADO.Метод Find.Не удается найти запись по условию Find "Field1=' ' and Field2=' ' "
    #32412912
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Alexander G

В DAO это не проблема .

А как запись в ADO тогда искать по двойному критерию?

2 Roalex
Есть.
...
Рейтинг: 0 / 0
ADO.Метод Find.Не удается найти запись по условию Find "Field1=' ' and Field2=' ' "
    #32412936
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если это верно, остается цикле
with rst
.find "Field1=2"
do while not .eof
if rst![field2]=5 Then
....
else
.find "Field1=2",1
loop
end with
...
Рейтинг: 0 / 0
ADO.Метод Find.Не удается найти запись по условию Find "Field1=' ' and Field2=' ' "
    #32412975
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Alexander G

А я так поступил .

Использую объект ADO.Command и в свойствах CommandText прописываю выражение SQL с WHERE и AND . И присваиваю результат рекордсету.

Public Function GetId(param1 As String, param2 As String) As Long
Set Cmd1.ActiveConnection = conn
Cmd1.CommandText = "SELECT * from Table1 where field1='" & param1 & "' AND field1='" & param2 & "'"
Cmd1.CommandType = adCmdText
Set Rs1 = Cmd1.Execute

GetId = Rs1(0)

End Function

А может зря результат рекордсету присваиваю, значение поля может можно взять прямо из ADO.Command

Все таки плохо что ADO не может искать по сложныи критериям, ну не писать же все время эти циклы.
...
Рейтинг: 0 / 0
ADO.Метод Find.Не удается найти запись по условию Find "Field1=' ' and Field2=' ' "
    #32413153
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зато .Filter отлично справляется с любыми корректными выражениями.
...
Рейтинг: 0 / 0
ADO.Метод Find.Не удается найти запись по условию Find "Field1=' ' and Field2=' ' "
    #32413374
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Pavel
А примерчик не приведешь на Filter?
...
Рейтинг: 0 / 0
ADO.Метод Find.Не удается найти запись по условию Find "Field1=' ' and Field2=' ' "
    #32413744
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
Private Sub Search(searchString As String)
    On Error Resume Next
    Static previousSearchString As String, SearchLevel As Byte, patternStr1 As String, patternStr2 As String
    Dim searchStr As String, searchLvl As Byte
    
    If searchString =  "" Then Exit Sub
    
    If previousSearchString <> searchString Then
        SearchLevel = 0 
    End If
    
    searchLvl = SearchLevel
    
    Do While searchLvl <=  3 
        Select Case searchLvl
            Case  0 
                searchStr = SearchFld & " = '" & searchString & "' "
            Case 1 
                searchStr = "( " & SearchFld & "  Like '" & searchString & "*') And ( " & SearchFld & "  <> '" & searchString & "') "
                patternStr1 = searchString & " * "
            Case 2 
                searchStr = SearchFld & " Like '* " & searchString & "*' "
                patternStr2 = " *  " & searchString & " * "
            Case 3 
                searchStr = "( " & SearchFld & "  Like '*" & searchString & "*') And ( " & SearchFld & "  <> '" & searchString & "')"
        End Select
            
        If (previousSearchString <> searchString) Or (SearchLevel <> searchLvl) Then
            rs.Filter = searchStr
        End If
        
        If (previousSearchString = searchString) And (Not rs.EOF) And (SearchLevel = searchLvl) Then
            rs.MoveNext
        End If
        
        SearchLevel = searchLvl
        previousSearchString = searchString
        
        If Not rs.EOF Then
            
            If Not ((searchLvl =  3 ) And ((rs(SearchFld) Like patternStr1) Or (rs(SearchFld) Like patternStr2))) Then
                Where2Search.bookMark = rs.bookMark
                Exit Do
            End If
            
        Else
            searchLvl = searchLvl +  1 
        End If
        
    Loop
End Sub
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ADO.Метод Find.Не удается найти запись по условию Find "Field1=' ' and Field2=' ' "
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]