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
 
 

Equivalence - Fonction fSplit

Description  
Cette fonction qui est disponible à partir de la version Access 2000, permet de retourner un tableau à une dimension contenant les sous chaînes d'une expression en fonction d'un délimitateur bien précis. Le code qui suit permet donc de contourner le problème pour les utilisateurs d'Office 97 qui souhaiteraient utiliser cette fonction.
 
Synthaxe  

Variable_Tableau = fSplit(expression[, delimiter[, compare]])

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

Eléments Description
expression Expression de chaîne contenant des sous-chaînes et des séparateurs. Si l'argument expression est une chaîne de longueur nulle (""), la fonction fSplit renvoie un tableau vide, c'est à dire un tableau ne comportant ni éléments ni données.
delimiter Facultatif. Caractère de chaîne utilisé pour identifier les limites de sous-chaîne. S'il est omis, le caractère espace (" ") est utilisé comme séparateur par défaut. Si l'argument delimiter est une chaîne de longueur nulle, un tableau à un élément contenant toute la chaîne expression est renvoyé.
compare Facultatif. Valeur numérique indiquant le type de comparaison à utiliser lors de l'évaluation des sous-chaînes. Reportez-vous à la section Valeurs.

Section Valeurs :
L'argument compare prend les valeurs suivantes

Constante Valeur Description
vbUseCompareOption -1 Effectue une comparaison à l'aide de la valeur de l'instruction Option Compare.
vbBinaryCompare 0 Effectue une comparaison binaire.
vbTextCompare 1 Effectue une comparaison de texte.
vbDatabaseCompare 2 Micorosft Access seulement. Effectue une comparaison basée sur des informations contenues dans votre base de données.
 
Exemple  

Cet exemple permet de retourner dans un msgBox la valeur retourner par la fonction fSplit :

Function fSplit_Exe()

    Dim TabfSplit As Variant
    Dim i%
    Dim strMsg As String

    TabfSplit = fSplit("toto-tata-titi", "-")
    If IsArray(TabfSplit) = False Then
        strMsg = "L'élément retourné est :" & vbCrLf
        strMsg = strMsg & vbCrLf & vbTab & TabfSplit
    Else
        strMsg = "Les éléments retournés sont :" & vbCrLf
        For i = 0 To UBound(TabfSplit)
            strMsg = strMsg & vbCrLf & vbTab & TabfSplit(i)
        Next
    End If
    MsgBox strMsg

End Function

Cet exemple retournera le msgbox suivant :

Image représentant le résultat de la fonction

 
Code de la fonction  


Public Function fSplit(expression As String, _
    Optional delimiter As String = " ", _
    Optional compare As VbCompareMethod = vbBinaryCompare) _
    As Variant

Dim L%, nb%, p%
Dim strResult As String
Dim varResult() As Variant

If IsNull(expression) Then
    fSplit = Null
Else
    strResult = expression
    L = Len(delimiter)
    If IsNull(delimiter) Or delimiter = "" Then
         fSplit = expression
     Else
         p = InStr(1, expression, delimiter, compare)
         If p = 0 Then
             fSplit = expression
         Else
             Do While p > 0
                 nb = nb + 1
                 ReDim Preserve varResult(nb)
                 varResult(nb - 1) = left(strResult, p - 1)
                 strResult = Mid(strResult, p + L)
                 p = InStr(1, strResult, delimiter, compare)
                 If p = 0 Then varResult(nb) = strResult
             Loop
             fSplit = varResult()
         End If
    End If
End If

End Function

 


Date de création : 14/09/2006 @ 23:19
Dernière modification : 27/10/2006 @ 16:08
Catégorie : Equivalence
Page lue 1183 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 : 120383  
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.08 seconde