Filter- und RecordCount-Eigenschaft – Beispiel (VB)
In diesem Beispiel wird ein Recordset in der Tabelle „Publishers“ (Verlage) in der Datenbank Pubs geöffnet. Anschließend wird die Filter-Eigenschaft verwendet, um die Anzahl der sichtbaren Datensätze auf die Verlage in einem bestimmten Land/einer bestimmten Region einzuschränken. Die RecordCount-Eigenschaft wird verwendet, um den Unterschied zwischen den gefilterten und ungefilterten Recordsets zu zeigen.
'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
Hinweis
Wenn Sie die Daten kennen, die Sie auswählen möchten, ist es in der Regel effizienter, ein Recordset mit einer SQL-Anweisung zu öffnen. In diesem Beispiel wird gezeigt, wie Sie nur ein Recordset erstellen und Datensätze aus einem bestimmten Land oder einer bestimmten Region abrufen können.
Attribute VB_Name = "Filter"
Weitere Informationen
Filter-Eigenschaft
RecordCount-Eigenschaft (ADO)
Recordset-Objekt (ADO)
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für