powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как в рекордсете ADO сделать поиск типа FindNext
9 сообщений из 9, страница 1 из 1
Как в рекордсете ADO сделать поиск типа FindNext
    #32614063
Фотография Farkhod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я хочу чтобы в рекордсете ADO сделать поиск типа найти далее
...
Рейтинг: 0 / 0
Как в рекордсете ADO сделать поиск типа FindNext
    #32614085
Yanis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
recordset.movenext
?
...
Рейтинг: 0 / 0
Как в рекордсете ADO сделать поиск типа FindNext
    #32614129
Фотография Farkhod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не получется он движется просто к следующей записи...
...
Рейтинг: 0 / 0
Как в рекордсете ADO сделать поиск типа FindNext
    #32614157
Yanis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что значит "поиск"?
Поиск в рекордсете в моем понимании - это фильтр
...
Рейтинг: 0 / 0
Как в рекордсете ADO сделать поиск типа FindNext
    #32614208
Фотография Farkhod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
например юзер выбирает с какого столбца искачть и вводит то что хочет найти и нажимает поиск; например таких значений в базе несколько, а rs.Find ... находит тока первый а остальные остаются. Вот как бы сделать поиск найти далее ?
...
Рейтинг: 0 / 0
Как в рекордсете ADO сделать поиск типа FindNext
    #32614210
dj74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ja eto sdelal tak. ne snaju xoroscho li poluzilos no rabotaet. tolko eto dlja VBA Access 97, no ne trudno peredelat!

Sub Suchung()
Dim dbs As DAO.Database
Dim rs As DAO.Recordset
Dim strSQL
Dim strEingabe, strKst
Dim a, metka1, metka2, metka3
Set dbs = CurrentDb
strSQL = "SELECT * FROM a_KST"
strKst = "Geben Sie die Kostenstelle ein."
strEingabe = InputBox(Prompt:=strKst, Title:="Suchung", XPos:=2000, YPos:=2000)

Set rs = dbs.OpenRecordset(strSQL)

With rs
.MoveLast
.MoveFirst

a = .Fields(0)

If a = strEingabe Then

GoTo metka2

Else

metka1:
.MoveNext
If ((.EOF = True) And (a <> strEingabe)) Then
MsgBox "Sie haben falsche Kostenstelle Eingefügen oder diese Kostenstelle exestiert nicht mehr!"
GoTo metka3
Else
a = .Fields(0)
If a = strEingabe Then
GoTo metka2
Else: GoTo metka1


metka2:

txtKST = .Fields(0)
txtBeschreibung = .Fields(1)
txtBUK = .Fields(3)
txtPTitel = .Fields(4)
txtPAnrede = .Fields(5)
txtPVerantw = .Fields(14)
txtPersonalNumm = .Fields(8)
metka3:
End If
End If
End If
End With

rs.Close
dbs.Close

Set rs = Nothing
Set dbs = Nothing

End Sub
...
Рейтинг: 0 / 0
Как в рекордсете ADO сделать поиск типа FindNext
    #32614348
Фотография PA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как найдёшь первую запись - запоминай закладку, чтобы найти следующую, используй параметр Start метода Find:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Dim bookmark As Variant

rst.Find strFindWhat
Do Until rst.EOF
      bookmark = .bookmark
      rst.Find strFindWhat, Start:=bookmark, SkipRecords:= 1 
      If Not rst.EOF Then Debug.Print rst( 0 )
Loop
...
Рейтинг: 0 / 0
Как в рекордсете ADO сделать поиск типа FindNext
    #32614357
Yanis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
Find Method Example (VB)


This example uses the Recordset object's Find method to locate and count the number of business titles in the Pubs database. The example assumes the underlying provider does not support similar functionality.


Public Sub Main()
    FindX
End Sub

Public Sub FindX()
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim mark As Variant
Dim count As Integer

count = 0
cnn.Open "DSN=Pubs; Provider=MSDASQL; uid=sa; pwd=;"
rst.Open "SELECT title_id FROM titles", cnn, _
            adOpenStatic, adLockReadOnly, adCmdText

' The default parameters are sufficient to search forward
' through a Recordset.

rst.Find "title_id LIKE 'BU%'"

' Skip the current record to avoid finding the same row repeatedly.
' The bookmark is redundant because Find searches from the current
' position.

Do While rst.EOF <> True    'Continue if last find succeeded.
    Debug.Print "Title ID: "; rst!title_id
    count = count + 1        'Count the last title found.
    mark = rst.Bookmark      'Note current position.
    rst.Find "title_id LIKE 'BU%'", 1, adSearchForward, mark
Loop

rst.Close
cnn.Close
Debug.Print "The number of business titles is " & count

End Sub
...
Рейтинг: 0 / 0
Как в рекордсете ADO сделать поиск типа FindNext
    #32614617
Фотография Farkhod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем Спасибо !
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как в рекордсете ADO сделать поиск типа FindNext
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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