Auteur

MVP Office Access 2003, 2004, 2005 et 2006

Qui sont les MVP ?

 
 

Codes pour Access

+ Base de données
+ Administrateur
+ Table
+ Requête
 -  Formulaire
+ Dates & Heures
+ Nombre
+ Math
+ Fichier
+ Commandes externes
+ Automation
+ Equivalence
 
 

Tuto Access 2007

+ Base de données
 
 

Lettre d'information

Pour avoir des nouvelles de ce site, inscrivez-vous à notre Newsletter.
S'abonner
Se désabonner

captcha
Merci de recopier le code alphanumérique ci-dessus
114 Abonnés
 
 

Formulaire - Recherche sur plusieurs champs

Description 

Cette fonction permet de retourner une chaîne de texte contenant les données déjà saisie dans une table en fonction de critères portant sur plusieurs champs.

 
Synthaxe 

fVerifMultiValue(strTable, strFld)

La synthaxe de la fonction fVerifMultiValue comprend les éléments suivants :

ElémentsDescription
strTableExpression de chaîne correspondant au nom de la table contenant les données.
strFldTableau contenant des valeurs qui marchent par 2, en premier le nom du champ, en deuxième la valeur du champ. Cet argument peut donc être constitué de 2 ou 4 ou 6 ou 8 ou ... données.
 
Exemple 


Imaginons la table "tblPersonne" avec les données suivantes :


images des données de la table


Ensuite, imaginons la saisie suivante dans un formulaire :


exemple du formulaire


Maintenant, si l'on place le code suivant sur le bouton OK :

Private Sub btnOK_Click()
    MsgBox fVerifMultiValue("tblPersonne", _
        "NomPers", Me.NomPers, "PrenomPer", Me.PrenomPer)
End Sub


On obtiendra le message suivant :


Message affiché

 

Code de la fonction 


Function fVerifMultiValue(strTable$­­­­­­­­­­­, ParamArray strFld() As Variant) As Variant

    Dim rst As DAO.Recordset
    Dim fld As DAO.Field
    Dim inFld As Integer
    Dim strRst As String
    Dim strWhere As String
    Dim strMsg As String
    Dim strRecord As String


    strRst = "Select * From " & strTable
    strWhere = ""

    For intFld = 0 To UBound(strFld) Step 2
        If intFld = 0 Then
            strWhere = " WHERE [" & strFld(intFld) & "] = "
            If IsNumeric(strFld(intFld + 1)) Then
                strWhere = strWhere & strFld(intFld + 1)
            Else
                strWhere = strWhere & """" & strFld(intFld + 1) & """"
            End If
        Else
            strWhere = strWhere & " AND [" & strFld(intFld) & "] = "
            If IsNumeric(strFld(intFld + 1)) Then
                strWhere = strWhere & strFld(intFld + 1)
            Else
                strWhere = strWhere & """" & strFld(intFld + 1) & """"
            End If
        End If
    Next

    strRst = strRst & strWhere

    Set rst = CurrentDb.OpenRecordset(strRst, dbOpenDynaset)

    With rst
        If Not .BOF Then
            strMsg = "La table contient les données similaires suivantes :" & vbCrLf
            .MoveFirst
            Do Until .EOF
                For Each fld In .Fields
                    strRecord = strRecord & fld.Value & vbTab
                Next
                strMsg = strMsg & vbCrLf & vbTab & strRecord
                strRecord = ""
                .MoveNext
            Loop
        Else
            strMsg = "Aucun élément similaire..."
        End If
    End With
    rst.Close: Set rst = Nothing

    fVerifMultiValue = strMsg

End Function

 


Date de création : 09/03/2007 @ 11:41
Dernière modification : 11/03/2007 @ 11:01
Catégorie : Formulaire
Page lue 2415 fois


Prévisualiser la page Prévisualiser la page     Imprimer la page Imprimer la page

 
 

Réactions à cet article


Personne n'a encore laissé de commentaire.
Soyez donc le premier !


 
 

Recherche




Google

 
 

Préférences

Votre nom (ou pseudo) :

Votre mot de passe :

     


Membres 76 Membres

membres les 10 derniers :
jujubegood   Rachid   fifimeyrou   MoxQwoidT   fof_alaz   bellemeche   Bruno   fatima   foubay   feever   
Membre en ligne : Membre en ligne :
( personne )
Anonyme en ligne : Anonyme en ligne : 1

Total visites : Total visites : 119046  
hit Affluence record: 102
le 17/06/2007 @ 07:36

Ecrire à Jessy SEMPERE Ajouter aux favoris Recommander ce site à un ami Version mobile
 
 


Design Jessy © 2007 - Compatible IE6, IE7 et Mozilla 2.0.0.1

  Site créé avec GuppY v4.5.18 © 2004-2005 - Licence Libre CeCILL

Document généré en 0.09 seconde