Exemplo das propriedades Filter e RecordCount (VB)
Este exemplo abre um Recordset na tabela Publishers no banco de dados Pubs. Em seguida, ele usa a propriedade Filter para limitar o número de registros visíveis a esses editores em determinado país/região. A propriedade RecordCount é usada para mostrar a diferença entre os conjuntos de registros filtrados e não filtrados.
'BeginFilterVB
'To integrate this code
'replace the data source and initial catalog values
'in the connection string
Public Sub Main()
On Error GoTo ErrorHandler
' recordset variables
Dim rstPublishers As ADODB.Recordset
Dim Cnxn As ADODB.Connection
Dim strCnxn As String
Dim SQLPublishers As String
' criteria variables
Dim intPublisherCount As Integer
Dim strCountry As String
Dim strMessage As String
' 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 data from Publishers table
Set rstPublishers = New ADODB.Recordset
SQLPublishers = "publishers"
rstPublishers.Open SQLPublishers, strCnxn, adOpenStatic, , adCmdTable
intPublisherCount = rstPublishers.RecordCount
' get user input
strCountry = Trim(InputBox("Enter a country to filter on (e.g. USA):"))
If strCountry <> "" Then
' open a filtered Recordset object
rstPublishers.Filter = "Country ='" & strCountry & "'"
If rstPublishers.RecordCount = 0 Then
MsgBox "No publishers from that country."
Else
' print number of records for the original recordset
' and the filtered recordset
strMessage = "Orders in original recordset: " & _
vbCr & intPublisherCount & vbCr & _
"Orders in filtered recordset (Country = '" & _
strCountry & "'): " & vbCr & _
rstPublishers.RecordCount
MsgBox strMessage
End If
End If
' clean up
rstPublishers.Close
Cnxn.Close
Set rstPublishers = Nothing
Set Cnxn = Nothing
Exit Sub
ErrorHandler:
' clean up
If Not rstPublishers Is Nothing Then
If rstPublishers.State = adStateOpen Then rstPublishers.Close
End If
Set rstPublishers = 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
'EndFilterVB
Observação
Quando você sabe os dados que deseja selecionar, geralmente é mais eficiente abrir um Recordset com uma instrução SQL. Este exemplo mostra como você pode criar apenas um Recordset e obter registros de um determinado país/região.
Attribute VB_Name = "Filter"
Consulte Também
Propriedade Filter
Propriedade RecordCount (ADO)
Objeto Recordset (ADO)
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários