Utilisation de la propriété filter en adodb (ado)

Description

Ce code montre le fonctinnement de la proriété FILTER de ADODB.RECORDSET.
Il explique aussi comment remplir une grille sans faire de boucle pour lire le recordset.
Thierry RICARD

Source / Exemple :


Option Explicit
'procedure de test sur la propriétée Filter
'AUTEUR : RICARD THIERRY
'DATE   : 04/10/2000
'Email : katyrd@infonie.fr
'http://perso.infonie.fr/katyrd

Dim cnApp As ADODB.Connection
Dim sConnect As String
Dim rs As ADODB.Recordset

Private Sub cmdFiltre_Click()
Dim strFiltre As String
'Champs sur lequel la base sera filtrée
strFiltre = "firstname"  '<--A CHANGER

rs.Filter = strFiltre & "='" & txtFilter & "'"
grd.Clear
If rs.RecordCount > 0 Then
   RempliGrille
Else

End If
lblInformation.Caption = rs.RecordCount & " Enregistrement(s) filtré(s)"
End Sub

Private Sub cmtAfficheTout_Click()
    rs.Filter = adFilterNone
    RempliGrille
End Sub

Private Sub Form_Load()
Set cnApp = New ADODB.Connection
Set rs = New ADODB.Recordset
'Penser à remplacer le ??? par vos valeurs
sConnect = "Provider=SQLOLEDB;User ID=???;Password=???;Initial Catalog=???;Data Source=???"
cnApp.ConnectionString = sConnect
cnApp.Open

If cnApp.State = adStateOpen Then
    Dim strTable As String
    'Table Qui sera interrogée
    strTable = "employee" '<--A CHANGER
    rs.Open strTable, cnApp, adOpenKeyset, adCmdTable
    RempliGrille
End If
End Sub

Sub RempliGrille()
    grd.Rows = rs.RecordCount + 1
    grd.Cols = rs.Fields.Count - 1
    grd.Row = 1
    grd.RowSel = grd.Rows - 1
    grd.ColSel = grd.Cols - 1
    grd.Clip = rs.GetString(adClipString, rs.RecordCount)
    grd.RowSel = 1
    grd.ColSel = 0
    lblInformation.Caption = rs.RecordCount & " Enregistrement(s)"
End Sub

Conclusion :


Téléchargez le fichier zip. les controles sont sur le form. il suffit de changer les parametres de connexion, le nom de la table et le champ sur lequel il faut filtrer.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.