Find 메서드 예제(VB)
이 예제에서는 Recordset 개체의 Find 메서드를 사용하여 Pubs 데이터베이스에서 비즈니스 타이틀 수를 찾고 계산합니다. 이 예제에서는 기본 공급자가 유사한 기능을 지원하지 않는다고 가정합니다.
'BeginFindVB
'To integrate this code
'replace the data source and initial catalog values
'in the connection string
Public Sub Main()
On Error GoTo ErrorHandler
' connection and recordset variables
Dim Cnxn As New ADODB.Connection
Dim rstTitles As New ADODB.Recordset
Dim strCnxn As String
Dim strSQLTitles As String
' record variables
Dim mark As Variant
Dim count As Integer
' open connection
Set Cnxn = New ADODB.Connection
strCnxn = "Provider='sqloledb';Data Source='MySqlServer';" & _
"Initial Catalog='Pubs';Integrated Security='SSPI';"
Cnxn.Open strCnxn
' open recordset with default parameters which are
' sufficient to search forward through a Recordset
Set rstTitles = New ADODB.Recordset
strSQLTitles = "SELECT title_id FROM titles"
rstTitles.Open strSQLTitles, Cnxn, adOpenStatic, adLockReadOnly, adCmdText
count = 0
rstTitles.Find "title_id LIKE 'BU%'"
Do While Not rstTitles.EOF
'continue if last find succeeded
Debug.Print "Title ID: "; rstTitles!title_id
'count the last title found
count = count + 1
' note current position
mark = rstTitles.Bookmark
rstTitles.Find "title_id LIKE 'BU%'", 1, adSearchForward, mark
' above code skips current record to avoid finding the same row repeatedly;
' last arg (bookmark) is redundant because Find searches from current position
Loop
Debug.Print "The number of business titles is " & count
' clean up
rstTitles.Close
Cnxn.Close
Set rstTitles = Nothing
Set Cnxn = Nothing
Exit Sub
ErrorHandler:
' clean up
If Not rstTitles Is Nothing Then
If rstTitles.State = adStateOpen Then rstTitles.Close
End If
Set rstTitles = Nothing
If Not Cnxn Is Nothing Then
If Cnxn.State = adStateOpen Then Cnxn.Close
End If
Set Cnxn = Nothing
If Err <> 0 Then
MsgBox Err.Source & "-->" & Err.Description, , "Error"
End If
End Sub
'EndFindVB