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

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

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

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

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

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

2 Roalex
Есть.
...
Рейтинг: 0 / 0
18.02.2004, 09:38
    #32412936
Alexander G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO.Метод Find.Не удается найти запись по условию Find "Field1=' ' and Field2=' ' "
если это верно, остается цикле
with rst
.find "Field1=2"
do while not .eof
if rst![field2]=5 Then
....
else
.find "Field1=2",1
loop
end with
...
Рейтинг: 0 / 0
18.02.2004, 10:07
    #32412975
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO.Метод Find.Не удается найти запись по условию Find "Field1=' ' and Field2=' ' "
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
18.02.2004, 11:26
    #32413153
Pavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO.Метод Find.Не удается найти запись по условию Find "Field1=' ' and Field2=' ' "
Зато .Filter отлично справляется с любыми корректными выражениями.
...
Рейтинг: 0 / 0
18.02.2004, 12:58
    #32413374
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO.Метод Find.Не удается найти запись по условию Find "Field1=' ' and Field2=' ' "
2 Pavel
А примерчик не приведешь на Filter?
...
Рейтинг: 0 / 0
18.02.2004, 14:56
    #32413744
Pavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO.Метод Find.Не удается найти запись по условию Find "Field1=' ' and Field2=' ' "
Код: 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
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ADO.Метод Find.Не удается найти запись по условию Find "Field1=' ' and Field2=' ' " / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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