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.
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.