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 :

une boucle qui ne Marche pas [AC-2010]


Sujet :

VBA Access

  1. #1
    Membre actif Avatar de Pittouti
    Homme Profil pro
    Consultant SAP
    Inscrit en
    Avril 2012
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant SAP
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2012
    Messages : 246
    Points : 257
    Points
    257
    Par défaut une boucle qui ne Marche pas
    Bonjour,

    je viens de créer ce code qui met à jour un champs dans une table mais j'ai message d'erreur ! ;(

    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
    Dim I As Integer
    Max = CurrentDb.TableDefs("VBASQL").RecordCount '-- le nombre d'enregistrement de ma table
     
    '--je rajoute temporairement un index (ordre) pour la mis à jour de ma table
    DoCmd.RunSQL "ALTER TABLE [VBASQL] ADD ordre COUNTER"
     
    '--boucle
    Do While I <= Max
    DoCmd.RunSQL ("UPDATE [VBASQL] SET [HK] = (DLookUp("[HK]","VBASQL","[ordre]=" & I-1 &")) + DLookUp("[test 2]","VBASQL","[ordre]=" & I &"))")
    I = I + 1
    Loop
     
    '--je supprime l'index
    DoCmd.RunSQL "ALTER TABLE [VBASQL] DROP COLUMN ordre"
    End Sub
    Message d'erreur

    Nom : Capture.PNG
Affichages : 338
Taille : 35,0 Ko

    et je ne comprends pas ou est l'erreur !
    ________________________________________________________________________________________

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.
    Merci, c'est toujours sympa de recevoir des +1 de votre part

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Tu n'initialises pas ton compteur ?!?
    Ensuite il faut faire attention entre les quotes et guillemets pour l'expression et les parenthèses. Le code serait :

    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
    Dim I As Integer
    Max = CurrentDb.TableDefs("VBASQL").RecordCount '-- le nombre d'enregistrement de ma table
     
    '--je rajoute temporairement un index (ordre) pour la mis à jour de ma table
    DoCmd.RunSQL "ALTER TABLE [VBASQL] ADD ordre COUNTER"
    'Initialisation de I 
    I=1
    '--boucle
    Do While I <= Max
    DoCmd.RunSQL ("UPDATE [VBASQL] SET [HK] = (DLookUp('[HK]','VBASQL','[ordre]='" & I-1 & ")) + (DLookUp('[test 2]','VBASQL','[ordre]='" & I &"))")
    I = I + 1
    Loop
     
    '--je supprime l'index
    DoCmd.RunSQL "ALTER TABLE [VBASQL] DROP COLUMN ordre"
    End Sub
    Cordialement.
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  3. #3
    Membre actif Avatar de Pittouti
    Homme Profil pro
    Consultant SAP
    Inscrit en
    Avril 2012
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant SAP
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2012
    Messages : 246
    Points : 257
    Points
    257
    Par défaut
    Bonjour,

    ça ne marche toujours pas

    il me dit que le syntaxe de la DLOOKUP est erroné
    ________________________________________________________________________________________

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.
    Merci, c'est toujours sympa de recevoir des +1 de votre part

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DoCmd.RunSQL ("UPDATE [VBASQL] SET [HK] = (DLookUp('[HK]','VBASQL','[ordre]=" & I-1 & "')) + (DLookUp('[test 2]','VBASQL','[ordre]=" & I &"'))")
    J'ai déplacé les deuxièmes "quotes" après les champs "ordre" des critères.

    Cordialement.
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  5. #5
    Membre actif Avatar de Pittouti
    Homme Profil pro
    Consultant SAP
    Inscrit en
    Avril 2012
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant SAP
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2012
    Messages : 246
    Points : 257
    Points
    257
    Par défaut
    Bonjour madefemere et merci pour ton aide,

    ce que tu m'a envoyé fonctionne parfaitement ( je n'ai plus de message d'erreur ) par contre dans mon champs [HK] j'ai la même valeur qui se répète sur les 30 enregistrement.

    j'ai peut être mal exprimé ma demande. ci-dessous une illustration du résultat que je veux avoir.

    résultat de la deuxième ligne :

    Nom : etape 1.png
Affichages : 178
Taille : 4,3 Ko

    Résultat de la troisième ligne :

    Nom : etape 2.png
Affichages : 166
Taille : 3,7 Ko
    ________________________________________________________________________________________

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.
    Merci, c'est toujours sympa de recevoir des +1 de votre part

  6. #6
    Membre actif Avatar de Pittouti
    Homme Profil pro
    Consultant SAP
    Inscrit en
    Avril 2012
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant SAP
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2012
    Messages : 246
    Points : 257
    Points
    257
    Par défaut
    BINGOOOOOOOOO

    j'ai trouvééééééééé

    ci-dessous le code qui fonctionne ou cas ou il servira à d'autres personnes !!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim I As Integer
    Max = CurrentDb.TableDefs("VBASQL").RecordCount '-- le nombre d'enregistrement de ma table
     
    '--je rajoute temporairement un index (ordre) pour la mis à jour de ma table
    DoCmd.RunSQL "ALTER TABLE [VBASQL] ADD ordre COUNTER"
    '--boucle
    For I = 2 To Max
    DoCmd.RunSQL ("UPDATE VBASQL, VBASQL AS VBASQL_1 SET VBASQL.HK = [VBASQL_1].[test 2]+ [VBASQL_1].[HK]" & _
    "WHERE (((VBASQL_1.ordre)=DMax('ordre','VBASQL','ordre<' & [VBASQL].[ordre])))")
    Next
    I = I + 1
    '--je supprime l'index
    DoCmd.RunSQL "ALTER TABLE [VBASQL] DROP COLUMN ordre"
    enfinnnnnnn
    ________________________________________________________________________________________

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.
    Merci, c'est toujours sympa de recevoir des +1 de votre part

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

Discussions similaires

  1. Encore une boucle qui ne marche pas
    Par Runsh63 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/04/2011, 09h16
  2. redirection sur une action qui ne marche pas
    Par nesbla dans le forum Struts 1
    Réponses: 5
    Dernier message: 04/08/2006, 20h16
  3. [JDOM] Une méthode qui ne marche pas
    Par kaninama dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 24/05/2006, 16h10
  4. appel d'une methode qui ne marche pas
    Par hansaplast dans le forum C++
    Réponses: 4
    Dernier message: 27/04/2006, 13h52
  5. Réponses: 1
    Dernier message: 28/07/2005, 14h21

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