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

VB 6 et antérieur Discussion :

Problème de concaténation de deux variables


Sujet :

VB 6 et antérieur

  1. #1
    Membre confirmé Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par défaut Problème de concaténation de deux variables
    Bonjour à tous. Je reviens encore une fois pour vous embêter un peu, j'ai un problème que je n'arrive pas à résoudre, je m'explique :
    J'ai un formulaire en VB6 qui contient plusieurs champs, après validation de ce formulaire j'effectue une insertion dans ma base.
    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
    strQuery = "SELECT * FROM Table [id_Table] = " & Id & "AND [annee] = " & Me.annee
        OuvrirRecordSet_rsADO strQuery
    
     If rsADO.EOF Then
         For I = 1 To 12
            'Janvier
            rsADO.AddNew
            rsADO![id_Table] = Id
            rsADO![champs1] = Me.variable + I
            .... 'd'autres champs de ma table
            rsADO![mois] = I
            rsADO![annee] = Me.annee
            'Fevrier
            
         Next
     Else Debug.print "Id existe déjà"
     End If
    
     'Met à jour la table
        rsADO.Update
        rsADO.Requery
        rsADO.Close
    Quand j'exécute ce code, j'ai l'erreur suivante :
    Méthode ou membre de données introuvable (erreur 461)
    Et ça correspond à la ligne où je concatene ma variable Me.variable + I
    Pour info : dans mon formulaire j'ai les champs suivant : Me.variable1, Me.variable2, Me.variable3, ..., Me.variable12 qui correspondent à un champs pour chaque mois de l'année!!
    Je crois j'ai tout dit, si quelqu'un peut m'aider à résoudre ce problème, c'est vraiment sympa de votre part, car là je suis bloquée
    Je vous remercie d'avance.

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    c'est pas tout à fait un probléme de concaténation ... tes variables variable1...
    c'est quoi en fait des textbox..?

  3. #3
    Membre confirmé Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par défaut
    Certain sont des label et d'autre des textBox, j'ai au total 84 variables

  4. #4
    Membre confirmé Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par défaut
    Citation Envoyé par bbil
    c'est pas tout à fait un probléme de concaténation ... tes variables variable1...
    c'est quoi en fait des textbox..?
    C'est quoi alors le problème?
    Merci pour ta réponse

  5. #5
    Membre Expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Par défaut
    En Vb, On ne peux pas accéder à une variable en calculant son nom

  6. #6
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Puisque tu dois affecter explicitement à un champ de la table une valeur contenue dans un textBox ou un Label, pourquoi ne pas nommer explicitement le contrôle en question aussi dans ton code?

  7. #7
    Membre confirmé Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par défaut
    Citation Envoyé par zazaraignée
    Puisque tu dois affecter explicitement à un champ de la table une valeur contenue dans un textBox ou un Label, pourquoi ne pas nommer explicitement le contrôle en question aussi dans ton code?
    Je ne comprend pas trop ce que tu veux dire? Désolé

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Par défaut
    Citation Envoyé par Delbeke
    En Vb, On ne peux pas accéder à une variable en calculant son nom
    C'était d'ailleurs l'objet d'un topic très récent. On ne peut pas concaténer deux chaines de caractères pour en faire un nom de variable ou d'objet (le fameux $$mavar en PHP). Il faut indexer les objets (label, textbox etc., -> variable(i))

  9. #9
    Membre confirmé Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par défaut
    Merci pour votre aide, j'avais pensé à cette solution mais je voulais voir si on pouvait pas faire pareil qu'en php et aussi pour éviter de refaire mon interface VB pour indéxer mes controle dans un tableau (84 variables en totales !!! )
    Bonne journée à tous et merci encore pour votre temps.

    N.B : Je suppose qu'en VB.Net c'est idem?

  10. #10
    Membre confirmé Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par défaut
    Je reviens encore vous voir
    En indexant mes controles de ma form, j'ai remplacé donc mes lignes de code par :
    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
     
    If rsADO.EOF Then
     For I = 0 To 11
       rsADO.AddNew
       rsADO![Champs1] = variable(I)
       ...
       rsADO![mois] = I+1
       ...
     Next I
    Else Debug.print "Déjà enregistré"
    End If
     'Met à jour la table
        rsADO.Update
        rsADO.Requery
        rsADO.Close
    Ce code s'arrete à l'itération I=1 (2eme itération) et effectue que l'enregistrement qui correspond au 1er mois (Janvier) et j'ai l'erreur : Run time error Risque de doublons de champs index ...
    Le bug correspond à la ligne de AddNew

    Si je met ces deux lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      rsADO.Update
      rsADO.Requery
    juste avant le Next I, le code s'arrete aussi à l'itération I=1 et le bug correspond à la ligne de update (Même msg d'erreur)

    Ce que je ne comprend pas c'est pourquoi il insère le 1er enregistrement et s'arrete à chaque fois au 2ème !!!
    AU SECOURS SVP Merci pour votre aide

  11. #11
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Par défaut
    Ben problème d'index unique apparement, tu essaies d'entrer 2 fois la même valeur dans un champ de type unique (à toi de nous le dire)

  12. #12
    Membre confirmé Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par défaut
    La clé primaire de la table où je veux insérer est de type auto-increment donc j'y touche pas, du coup je n'arrive pas à voir où les doublons se font?

  13. #13
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Par défaut
    Tu peux très bien avoir un auto-incrément et un autre champ de type unique. A toi de nous dire lequel. C'est une base de quel type ? (Acces ?) Tu l'administres comment ?

  14. #14
    Membre Expert
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Par défaut
    Moi j'aurais juste une question

    dans la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rsADO![champs1] = Me.variable + I
    c quoi champs1 est une variable qui contient une table ?? car je crois que le probleme viens de la, car d'apres le message d'erreur il n'arrive pas a acceder a la table dans la BD. essai de revoir cette variable ou cette table.

  15. #15
    Membre confirmé Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par défaut
    Citation Envoyé par sovo
    Moi j'aurais juste une question

    dans la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rsADO![champs1] = Me.variable + I
    c quoi champs1 est une variable qui contient une table ?? car je crois que le probleme viens de la, car d'apres le message d'erreur il n'arrive pas a acceder a la table dans la BD. essai de revoir cette variable ou cette table.
    Champs1 est un attribut de ma table, et il le trouve bien car il arrive à insérer le 1er enregistrement!! Ce que je 'arrive toujours pas à trouver c'est pourquoi il n'insère pas la suite, est ce que c'est dû à ma boucle for qui est mal faite? Si vous voyez qqchose d'anormal dans mon code je vous remercie de me répondre.
    J'ai changé mon code plusieurs fois et là il ne fait plus le msg d'erreur mais il n'insère que le 1er

  16. #16
    Membre confirmé Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par défaut
    Citation Envoyé par Phifi
    Tu peux très bien avoir un auto-incrément et un autre champ de type unique. A toi de nous dire lequel. C'est une base de quel type ? (Acces ?) Tu l'administres comment ?
    C'est une base de type access. Je ne sais pas ce que j'ai changé (plusieurs essai pour corriger l'erreur!!) et je n'ai plus le msg d'erreur mais j'ai toujours le problème d'une seule insertion!!! Merci pour ton aide

  17. #17
    Membre confirmé Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par défaut
    je ne comprend rien, hier j'ai testé, je n'avais plus le msg d'erreur des doublons, et auj en faisant plusieurs tests, je m'apercois que des fois ça passe sans erreur et des fois fois l'application plante avec le msg "risque de doublons..."

  18. #18
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Par défaut
    Tu l'administres avec quel logiciel externe ? Acces ? Visdata ?

  19. #19
    Membre confirmé Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par défaut
    Tout a été crée sous access, et les donnée sont gérée avec une aplication en VB6/ADO

  20. #20
    Membre confirmé Avatar de poissonsoluble
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par défaut
    C'est bon, j'ai trouvé, j'avais un lien 1,1 entre cette table et une autre table dans ma base En tout cas je vous remercie pour le temps que vous m'avez consacré. Et peut être à bientôt Bonne continuation.

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

Discussions similaires

  1. [AC-2003] Concaténation de deux variables
    Par collosus dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 17/05/2010, 18h20
  2. concaténation de deux variables
    Par hicham20 dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 07/05/2009, 16h56
  3. Concaténation de deux variables
    Par Olivier Regnier dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 16/04/2008, 11h56
  4. problème de concaténation de deux chaines
    Par info79 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/01/2008, 18h04
  5. Problème de concaténation entre deux valeurs
    Par jeremie74 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 28/08/2007, 18h28

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