[VBA Access] parcourir chaine de caractères[RESOLUS]

parcourir chaine de caractères[RESOLUS] [VBA Access] - VB/VBA/VBS - Programmation

Marsh Posté le 06-01-2011 à 18:09:57    

Bonsoir tous le monde!
 
J'ai un petit soucis, et j'espère que vous allez pouvoir m'aider.
 
Je reçois une chaine de caractère que je stocke dans une variable;
 
(ex : chaine = "F; 0000012; 15654b; 154; 469874;01; 458;;   ;1546;;" )
 
J'aimerais donc parcourir la chaine en récupérant les caractères pour les stocker dans d'autres variables;
 
(ex : variable1 = "F"
       variable2 = "00000012"
       variable3 = "15654b"
       .... et ainsi de suite)
 
Alors avez-vous une idée, de la manière dont je pourrai procéder?
 
Je vous remercis d'avance de votre aide ^^


Message édité par alexbigfoug le 10-01-2011 à 17:37:23
Reply

Marsh Posté le 06-01-2011 à 18:09:57   

Reply

Marsh Posté le 06-01-2011 à 18:28:28    

Salut,voir l'aide en ligne sur Split
Par exemple en adaptant


Option Explicit
 
Sub Tst()
Dim Chaine As String, Ar() As String, i As Long
    Chaine = "F; 0000012; 15654b; 154; 469874;01; 458;;   ;1546;;"
     
    Ar = Split(Chaine, ";" )
    For i = LBound(Ar) To UBound(Ar)
        Debug.Print Ar(i)
    Next i
End Sub


Message édité par kiki29 le 06-01-2011 à 18:35:58
Reply

Marsh Posté le 06-01-2011 à 18:43:43    

heu Split!! Qu'est ce que c'est ??? D'ou il vient ??? On peut le nourrir ??? Il cri si on lui lèche les cou... ^^
 
Non sérieux je ne connais pas... Sorry !!!
 
Une petite précision, je travail sur access 2000 ... Ouai, 11ans...

Reply

Marsh Posté le 06-01-2011 à 19:24:31    

Re,normalement Split est dispo depuis les versions 2000 et devrait apparaitre dans l'aide en ligne VBA
Sinon il faut passer par qqch comme ceci pour les versions antéreieures


 
Sub Tst()
Dim Chaine As String, Ar() As String, i As Long
    Chaine = "F; 0000012; 15654b; 154; 469874;01; 458;;   ;1546;;"
 
    Split97 Ar(), Chaine, ";"
    For i = LBound(Ar) To UBound(Ar)
        Debug.Print Ar(i)
    Next i
End Sub
 
Private Function Split97(ByRef Ar() As String, ByVal s As String, ByVal sSep As String)
Dim Pos As Long
Dim i As Long, j As Long
    i = 1: j = 0
    Do While i <= Len(s)
        If Mid$(s, i, 1) = sSep Then
            ReDim Preserve Ar(j)
            Pos = InStr(s, sSep)
            Ar(j) = Left$(s, Pos - 1)
            s = Right$(s, Len(s) - Pos)
            j = j + 1: i = 0
        End If
        i = i + 1
    Loop
    ReDim Preserve Ar(j)
    Ar(j) = s
End Function


Message édité par kiki29 le 06-01-2011 à 20:26:55
Reply

Marsh Posté le 07-01-2011 à 09:52:23    

C'est parfait la fonction split fonctionne correctement sous access 2000
 
Voilà ce que cela donne
 
 Dim chaine As String
    Dim tableau_chaine() As String
    Dim champ1 As String
    Dim champ2 As String
    Dim champ3 As String
    Dim champ4 As String
     
     
    chaine = "F; 0000012; 15654b; 154; 469874;01; 458;;   ;1546;;"  
    tableau_chaine = Split(chaine, ";" )
     
    champ1= tableau_chaine(0)
    champ2 = tableau_chaine(1)
    champ3 = tableau_chaine(2)
    champ4 = tableau_chaine(3)
 
Merci de ton aide kiki29 !!!!


Message édité par alexbigfoug le 07-01-2011 à 09:58:44
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed