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

VBA Access Discussion :

Concaténation INSERT INTO


Sujet :

VBA Access

  1. #1
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 13
    Par défaut Concaténation INSERT INTO
    Bonjour,
    Voici mon code :

    x étant le nombre d'enregistrements de ma table
    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
    For i = 1 To x
     
     
            For j = i To x
     
                dbs.Execute ("INSERT INTO MC (MC) VALUES ('" & (tabl(j)) & (tabl(j + 1)) & "') ")
                ' Calcul du pourcentage
                dbs.Execute ("INSERT INTO MC (NB) VALUES ('" & (i / x * 100) & "')")
     
                    If j <> 0 Then
                        dbs.Execute ("INSERT INTO MC (MC) VALUES ('" & (tabl(j)) & (tabl(j - 1)) & "') ")
                        ' Calcul du pourcentage
                        dbs.Execute ("INSERT INTO MC (NB) VALUES ('" & (i / x * 100) & "')")
                    End If
            Next
    Next
    Mon problème :

    Je souhaite concaténé 2 champs dans 1 dans un INSERT INTO. Possible ? Pas possible ?
    Les nouveaux enregistrements se font mais j'ai des champs vides.

    Merci de votre aide.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Par défaut
    Bonjour,

    Il faut regarder du coté de la fonction NZ.

  3. #3
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 13
    Par défaut
    la fonction NZ ?

    Je connais pas du tout tu peux développer ? ^^

    Merci.

  4. #4
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 13
    Par défaut
    j'ai tenté ça

    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
    For i = 1 To x
     
     
            For j = i To x
     
                dbs.Execute ("INSERT INTO MC (MC) VALUES ('" & (Nz(tabl(j), tabl(j + 1))) & "') ")
                ' Calcul du pourcentage
                dbs.Execute ("INSERT INTO MC (NB) VALUES ('" & (i / x * 100) & "')")
     
                    If j <> 0 Then
                        dbs.Execute ("INSERT INTO MC (MC) VALUES ('" & (Nz(tabl(j), tabl(j - 1))) & "') ")
                        ' Calcul du pourcentage
                        dbs.Execute ("INSERT INTO MC (NB) VALUES ('" & (i / x * 100) & "')")
                    End If
            Next
    Next
    mais ça marche toujours pas . . .

    :s

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Par défaut
    et avec quelque chose dans ce genre ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    NZ((tabl(j)) & (tabl(j + 1)))
    F1 est une touche qui peut s'avérer très utile ^^

  6. #6
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 13
    Par défaut
    Oui je suis allée chercher ce qu'était cette fonction mais c'est pas un choix que je veux c'est les deux ensemble. ^^

    J'ai essayé. Ça ne marche toujours pas . . .

    Je souhaite prendre 2 lignes différentes mais de la même table et les mettre ensemble (c'est une chaîne de caractères si ça peut aider) et créer un nouvel enregistrement avec les deux

    Exemple :

    MC_________________NB

    Rouge______________33%
    Jaune______________33%
    Bleu________________33%

    Rouge Bleu__________66%
    Jaune Bleu___________66%
    Bleu Rouge___________66%
    Rouge Jaune__________66%

    Rouge Bleu Jaune_____100%


    Voilà ce que devrait donné mon code. Or je n'ai rien dans ma colonne MC qui s'affiche à part les 3 premiers que l'utilisateur a saisi.

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Par défaut
    Comment charges-tu ton tableau ?

    De plus il y a un probleme avec ta formule
    si i vaut 1 et que x vaut 3 (comme dans ton exemple)
    1/3*100 ca fait pas 1/3

  8. #8
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 13
    Par défaut
    Bon en faite j'ai modifié mon code et ça marche

    le voici :
    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
    28
    29
    30
    31
    32
    33
      x = 0
               MC = Trim(Me.txt_critere) & " "
               dbs.Execute ("DELETE FROM MC")
               For i = 1 To Len(MC)
                    If Mid(MC, i, 1) = " " Then
                        dbs.Execute ("INSERT INTO MC (MC,POS) VALUES('" & Trim(CH) & "'," & (x + 2) & ")")
                        x = x + 1
                        tabl(x) = Trim(CH)
                        CH = ""
                    End If
                    CH = CH & Mid(MC, i, 1)
               Next
    
    
        
        Set rcd = dbs.OpenRecordset("SELECT * FROM MC WHERE POS > 0")
        Do While Not rcd.EOF
            
           dbs.Execute ("UPDATE MC SET NB = ('" & (i / x * 100) & "') ")
    
            For j = rcd.Fields("POS") To x
                
                dbs.Execute ("INSERT INTO MC (MC,POS) VALUES ('" & rcd.Fields("MC") & " " & (tabl(j)) & "'," & (j + 1) & ") ")
                      
                
            Next
            rcd.Edit
            rcd.Fields("POS") = 0
            rcd.Update
            rcd.Bookmark = rcd.LastModified
            rcd.MoveNext
        Loop
        rcd.Close
    Mon ancien code de pourcentage marchait mais maintenant non en fin de compte. Je travaille dessus. (en rouge et gras, j'essaye de le placer) ^^

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 19/10/2006, 14h28
  2. probleme clé sequentiel avec insert into
    Par shake dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/06/2004, 15h54
  3. probleme d'INSERT INTO et JavaScript
    Par Matlight dans le forum Langage SQL
    Réponses: 3
    Dernier message: 04/03/2004, 15h36
  4. erreur SQL ...INSERT INTO
    Par naidinp dans le forum ASP
    Réponses: 20
    Dernier message: 18/09/2003, 11h38
  5. Insert Into + Date
    Par BoeufBrocoli dans le forum SQL
    Réponses: 10
    Dernier message: 13/08/2003, 11h23

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