IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Fonction Split


Sujet :

Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 28
    Points : 18
    Points
    18
    Par défaut Fonction Split
    Bonjour,

    j'avais poste mon problème y'a quelques jours. Je suis bloqué sur la fonction Split.
    J'ai repris le code du site mais lors de son utilisation sous Access 97, j'ai le message suivant : "impossible d'affecter à un tableau"

    Or la fonction fournit sur le site renvoie bien un tableau et le format de ma variable est aussi un tableau.

    Quelqu'un aurait rencontré ce problème ???

  2. #2
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    As-tu mis la déclaration ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim MonTableauResultat() As String
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    Oui justement j'ai bien declare la variable.


  4. #4
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    montre nous ton code ...
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    La fonction split est la meme que celle du site.

    Sinon voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Private Sub RefreshQuery()
    Dim SQL As String
    Dim SQLWhere As String
    Dim str() As String
    [...]
     
    If Not Me.txtVoix = "" Then
        With Me!txtVoix
     
            If Not IsNumeric(.Value) Then
                SQL = SQL & "And Mobiles![N° VOIX] like '*" & Me.txtVoix & "*' "
            Else
     
                str = FctSplit(Trim(Me.txtVoix), " ")
                If (UBound(str) = 0) Then
    [...]
    voila voila

  6. #6
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    il faudrait peut être faire un test sur Me.txtVoix, car s'il est Null la fonction de split va planter.

    car ce code marche parfaitement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Public Function FctSplit(ByVal strg As String, Sep As String) As Variant
        Dim i As Integer
        Dim TblSplit() As String
        i = 1
        While InStr(1, strg, Sep) <> 0
            ReDim Preserve TblSplit(i)
            TblSplit(i - 1) = Left(strg, InStr(1, strg, Sep) - 1)
            strg = Mid(strg, InStr(1, strg, Sep) + Len(Sep))
            i = i + 1
        Wend
        If Len(strg) > 0 Then
            ReDim Preserve TblSplit(i)
            TblSplit(i - 1) = strg
        End If
        FctSplit = TblSplit
    End Function
     
    Function TestItNow()
     
    Dim T() As String
    Dim i As Integer
    T = FctSplit("Salut ça va ?", " ")
    For i = 0 To UBound(T) - 1
        Debug.Print "Mot " & i & " : " & T(i)
    Next i
     
    End Function
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    Justement je fais bien un test sur Me.txtVoix pour qu'il ne soit pas null...

  8. #8
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Le soucis est en effet que la fonction split des codes sources retourne un tableau ... chose qui n'est pas possible dans Access97

    Essaye ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Public Sub SubSplit(ByVal strg As String, Sep As String, TblSplit() As String)
        Dim i As Integer
        i = 1
        While InStr(1, strg, Sep) <> 0
            ReDim Preserve TblSplit(i)
            TblSplit(i - 1) = Left(strg, InStr(1, strg, Sep) - 1)
            strg = Mid(strg, InStr(1, strg, Sep) + Len(Sep))
            i = i + 1
        Wend
        If Len(strg) > 0 Then
            ReDim Preserve TblSplit(i)
            TblSplit(i - 1) = strg
        End If
    End Sub
     
    Sub test()
    Dim T() As String
    SubSplit "Bonjour Monsieur Dupont", " ", T
    MsgBox T(1)
    End Sub

    Mais je suis pas sûr que ça fonctionne mieux. Je ne dispose pas d'access 97 et je ne me rappelle plus s'il est possible de passer un tableau comme paramètre d'une sub

  9. #9
    Membre confirmé
    Avatar de Petogaz
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 479
    Points : 580
    Points
    580
    Par défaut
    salut,

    Citation Envoyé par Tofalu
    je ne me rappelle plus s'il est possible de passer un tableau comme paramètre d'une sub
    si mes souvenirs sont bon je pense que c'est possible il suffit de créer un tableau de paramètre quelque chose du genre :
    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public  Function Montableau(ParamArray avarTableau() as variant) as string(ou autres)
    donc mettre le mot clé ParamArray pour spécifier un nombre quelconque d'argument donc de 0 à n qui va être l'indice.
    j'espère que je n'ai pas compris à coté la question.

  10. #10
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Je pense pas que le paramarray nous aide ici

    En fait le problème c'est d'utiliser encore Access 97

    Je rigole, je sais trés bien que des fois on a pas le choix

  11. #11
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Vous pouvez toujours utiliser le code qui est dans mon tuto sur la classe string étendue : http://cafeine.developpez.com/access...el/classe/#LVI
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    La fonction de Tofalu semble fonctionner.
    Je n'ai pas de message d'erreur.

    Par contre j'ai une autre erreur ms qui ne semble pas être lié à la fonction.
    Je vais chercher d'abord.

    Donc je vais fermer ce sujet.

    Merci pour votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. caractéres spéciaux, fonction split, replace
    Par clochardevobsy dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 22/10/2005, 23h40
  2. Réponses: 5
    Dernier message: 13/10/2005, 12h46
  3. [String] fonction split
    Par tck-lt dans le forum Langage
    Réponses: 2
    Dernier message: 19/07/2005, 17h45
  4. procedure stockée et fonction "split"
    Par wehtam dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/07/2005, 16h21
  5. [Fortran 90] Fonction Split()
    Par gchazelle dans le forum Fortran
    Réponses: 2
    Dernier message: 02/03/2005, 10h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo