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 :

Erreur 3141 dans exécution de code


Sujet :

Access

  1. #1
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut Erreur 3141 dans exécution de code
    J'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Erreur d'exécution '3141':
    Dans l'instruction SELECT, un mot réservé ou un argument est mal orthographié ou absent, ou la ponctuation est incorrecte.
    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
    18
    Set oPerimetre1 = myDb.OpenRecordset("SELECT supra_table_perimetre.id_division AS var_perimetre, " _
            & "Sum(supra_table_perimetre.perf_1_01) AS perf_1_01, Sum(supra_table_perimetre.perf_1_02) AS perf_1_02, Sum(supra_table_perimetre.perf_1_03) AS perf_1_03, Sum(supra_table_perimetre.perf_1_04) AS perf_1_04, Sum(supra_table_perimetre.perf_1_05) AS perf_1_05, Sum(supra_table_perimetre.perf_1_06) AS perf_1_06, Sum(supra_table_perimetre.perf_1_07) AS perf_1_07, Sum(supra_table_perimetre.perf_1_08) AS perf_1_08, Sum(supra_table_perimetre.perf_1_09) AS perf_1_09, Sum(supra_table_perimetre.perf_1_10) AS perf_1_10, " _
            & "Sum(supra_table_perimetre.perf_1_11) AS perf_1_11, Sum(supra_table_perimetre.perf_1_12) AS perf_1_12, Sum(supra_table_perimetre.perf_1_13) AS perf_1_13, Sum(supra_table_perimetre.perf_1_14) AS perf_1_14, Sum(supra_table_perimetre.perf_1_15) AS perf_1_15, Sum(supra_table_perimetre.perf_1_16) AS perf_1_16, Sum(supra_table_perimetre.perf_1_17) AS perf_1_17, Sum(supra_table_perimetre.perf_1_18) AS perf_1_18, Sum(supra_table_perimetre.perf_1_19) AS perf_1_19, Sum(supra_table_perimetre.perf_1_20) AS perf_1_20, " _
            & "Sum(supra_table_perimetre.perf_1_21) AS perf_1_21, Sum(supra_table_perimetre.perf_1_22) AS perf_1_22, Sum(supra_table_perimetre.perf_1_23) AS perf_1_23, Sum(supra_table_perimetre.perf_1_24) AS perf_1_24, Sum(supra_table_perimetre.perf_1_25) AS perf_1_25, Sum(supra_table_perimetre.perf_1_26) AS perf_1_26, Sum(supra_table_perimetre.perf_1_27) AS perf_1_27, Sum(supra_table_perimetre.perf_1_28) AS perf_1_28, Sum(supra_table_perimetre.perf_1_29) AS perf_1_29, Sum(supra_table_perimetre.perf_1_30) AS perf_1_30, " _
            & "Sum(supra_table_perimetre.perf_1_31) AS perf_1_31, Sum(supra_table_perimetre.perf_1_32) AS perf_1_32, Sum(supra_table_perimetre.perf_1_33) AS perf_1_33, Sum(supra_table_perimetre.perf_1_34) AS perf_1_34, Sum(supra_table_perimetre.perf_1_35) AS perf_1_35, Sum(supra_table_perimetre.perf_1_36) AS perf_1_36, Sum(supra_table_perimetre.perf_1_37) AS perf_1_37, Sum(supra_table_perimetre.perf_1_38) AS perf_1_38, Sum(supra_table_perimetre.perf_1_39) AS perf_1_39, Sum(supra_table_perimetre.perf_1_40) AS perf_1_40, " _
            & "Sum(supra_table_perimetre.perf_1_41) AS perf_1_41, Sum(supra_table_perimetre.perf_1_42) AS perf_1_42, Sum(supra_table_perimetre.perf_1_43) AS perf_1_43, Sum(supra_table_perimetre.perf_1_44) AS perf_1_44, Sum(supra_table_perimetre.perf_1_45) AS perf_1_45, Sum(supra_table_perimetre.perf_1_46) AS perf_1_46, " _
            & "FROM supra_table_perimetre " _
            & "GROUP BY supra_table_perimetre.id_division " _
            & "HAVING (((supra_table_perimetre.id_division)= " & var_division & ")) " _
            & "union SELECT supra_table_perimetre.id_zone AS var_perimetre, " _
            & "Sum(supra_table_perimetre.perf_1_01) AS perf_1_01, Sum(supra_table_perimetre.perf_1_02) AS perf_1_02, Sum(supra_table_perimetre.perf_1_03) AS perf_1_03, Sum(supra_table_perimetre.perf_1_04) AS perf_1_04, Sum(supra_table_perimetre.perf_1_05) AS perf_1_05, Sum(supra_table_perimetre.perf_1_06) AS perf_1_06, Sum(supra_table_perimetre.perf_1_07) AS perf_1_07, Sum(supra_table_perimetre.perf_1_08) AS perf_1_08, Sum(supra_table_perimetre.perf_1_09) AS perf_1_09, Sum(supra_table_perimetre.perf_1_10) AS perf_1_10, " _
            & "Sum(supra_table_perimetre.perf_1_11) AS perf_1_11, Sum(supra_table_perimetre.perf_1_12) AS perf_1_12, Sum(supra_table_perimetre.perf_1_13) AS perf_1_13, Sum(supra_table_perimetre.perf_1_14) AS perf_1_14, Sum(supra_table_perimetre.perf_1_15) AS perf_1_15, Sum(supra_table_perimetre.perf_1_16) AS perf_1_16, Sum(supra_table_perimetre.perf_1_17) AS perf_1_17, Sum(supra_table_perimetre.perf_1_18) AS perf_1_18, Sum(supra_table_perimetre.perf_1_19) AS perf_1_19, Sum(supra_table_perimetre.perf_1_20) AS perf_1_20, " _
            & "Sum(supra_table_perimetre.perf_1_21) AS perf_1_21, Sum(supra_table_perimetre.perf_1_22) AS perf_1_22, Sum(supra_table_perimetre.perf_1_23) AS perf_1_23, Sum(supra_table_perimetre.perf_1_24) AS perf_1_24, Sum(supra_table_perimetre.perf_1_25) AS perf_1_25, Sum(supra_table_perimetre.perf_1_26) AS perf_1_26, Sum(supra_table_perimetre.perf_1_27) AS perf_1_27, Sum(supra_table_perimetre.perf_1_28) AS perf_1_28, Sum(supra_table_perimetre.perf_1_29) AS perf_1_29, Sum(supra_table_perimetre.perf_1_30) AS perf_1_30, " _
            & "Sum(supra_table_perimetre.perf_1_31) AS perf_1_31, Sum(supra_table_perimetre.perf_1_32) AS perf_1_32, Sum(supra_table_perimetre.perf_1_33) AS perf_1_33, Sum(supra_table_perimetre.perf_1_34) AS perf_1_34, Sum(supra_table_perimetre.perf_1_35) AS perf_1_35, Sum(supra_table_perimetre.perf_1_36) AS perf_1_36, Sum(supra_table_perimetre.perf_1_37) AS perf_1_37, Sum(supra_table_perimetre.perf_1_38) AS perf_1_38, Sum(supra_table_perimetre.perf_1_39) AS perf_1_39, Sum(supra_table_perimetre.perf_1_40) AS perf_1_40, " _
            & "Sum(supra_table_perimetre.perf_1_41) AS perf_1_41, Sum(supra_table_perimetre.perf_1_42) AS perf_1_42, Sum(supra_table_perimetre.perf_1_43) AS perf_1_43, Sum(supra_table_perimetre.perf_1_44) AS perf_1_44, Sum(supra_table_perimetre.perf_1_45) AS perf_1_45, Sum(supra_table_perimetre.perf_1_46) AS perf_1_46, " _
            & "FROM supra_table_perimetre " _
            & "GROUP BY supra_table_perimetre.id_zone " _
            & "HAVING (((supra_table_perimetre.id_zone)= " & var_zone & "));")
    Quelqu'un a-t-il une idée sur l'endroit ou se trouve mon erreur ??? Car moi je n'y arrive pas. D'avance merci.
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  2. #2
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    Mets ta requete SQL dans une variable et affiche son contenu par un Debug.Print.
    Tu devrais alors voir ce qui cloche.
    Si tu ne vois pas, copie la requete et lance la depuis le requeteur Access.

    En esperant que ca t'aide.
    J'aime les gâteaux.

  3. #3
    Membre actif Avatar de ActionAccess
    Inscrit en
    Mars 2006
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 175
    Points : 213
    Points
    213
    Par défaut
    Bonjour,

    Je te conseille de copier l'ensemble de ton instruction SQL (depuis SELECT... jusqu'à var_zone & ")); dans une requête (Requêtes, nouvelle requête, affichage SQL).
    Access te demandera alors la valeur du paramètre var_zone.

    S'il y a une erreur de syntaxe, le générateur de requête sera bcp plus explicite que VBA dans ce cas précis.

    Bon courage
    ActionAccess

  4. #4
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    En la recopiant dans le requêteur cela fonctionne ???

    Donc, je ne sais pas d'ou cela vient
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  5. #5
    Membre actif Avatar de ActionAccess
    Inscrit en
    Mars 2006
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 175
    Points : 213
    Points
    213
    Par défaut
    As-tu essayé de supprimer le ";" à la fin de l'instruction. Normalement, ce n'est pas nécessaire pour appeler un recordset.
    ActionAccess

  6. #6
    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 : 41
    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
    Y a une virgule avant le from déjà

  7. #7
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Merci Tofalu, sans la vigule cela fonctionne mieux.

    Mais comme une erreur en appelle une autre, maintenant j'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Erreur d'exécution '3144' :
    Erreur de syntaxe dans l'instruction UPDATE
    Mon code est le suivant :
    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
    DoCmd.RunSQL "UPDATE supra_table_perimetre SET supra_table_perimetre.perf_1_01 = " & oPerimetre1![perf_1_01] & ", supra_table_perimetre.perf_1_02 = " & oPerimetre1![perf_1_02] & "" _
            & ", supra_table_perimetre.perf_1_03 = " & oPerimetre1![perf_1_03] & ", supra_table_perimetre.perf_1_04 = " & oPerimetre1![perf_1_04] & "" _
            & ", supra_table_perimetre.perf_1_05 = " & oPerimetre1![perf_1_05] & ", supra_table_perimetre.perf_1_06 = " & oPerimetre1![perf_1_06] & "" _
            & ", supra_table_perimetre.perf_1_07 = " & oPerimetre1![perf_1_07] & ", supra_table_perimetre.perf_1_08 = " & oPerimetre1![perf_1_08] & "" _
            & ", supra_table_perimetre.perf_1_09 = " & oPerimetre1![perf_1_09] & ", supra_table_perimetre.perf_1_10 = " & oPerimetre1![perf_1_10] & "" _
            & ", supra_table_perimetre.perf_1_11 = " & oPerimetre1![perf_1_11] & ", supra_table_perimetre.perf_1_12 = " & oPerimetre1![perf_1_12] & "" _
            & ", supra_table_perimetre.perf_1_13 = " & oPerimetre1![perf_1_13] & ", supra_table_perimetre.perf_1_14 = " & oPerimetre1![perf_1_14] & "" _
            & ", supra_table_perimetre.perf_1_15 = " & oPerimetre1![perf_1_15] & ", supra_table_perimetre.perf_1_16 = " & oPerimetre1![perf_1_16] & "" _
            & ", supra_table_perimetre.perf_1_17 = " & oPerimetre1![perf_1_17] & ", supra_table_perimetre.perf_1_18 = " & oPerimetre1![perf_1_18] & "" _
            & ", supra_table_perimetre.perf_1_19 = " & oPerimetre1![perf_1_19] & ", supra_table_perimetre.perf_1_20 = " & oPerimetre1![perf_1_20] & "" _
            & ", supra_table_perimetre.perf_1_21 = " & oPerimetre1![perf_1_21] & ", supra_table_perimetre.perf_1_22 = " & oPerimetre1![perf_1_22] & "" _
            & ", supra_table_perimetre.perf_1_23 = " & oPerimetre1![perf_1_23] & ", supra_table_perimetre.perf_1_24 = " & oPerimetre1![perf_1_24] & "" _
            & ", supra_table_perimetre.perf_1_25 = " & oPerimetre1![perf_1_25] & ", supra_table_perimetre.perf_1_26 = " & oPerimetre1![perf_1_26] & "" _
            & ", supra_table_perimetre.perf_1_27 = " & oPerimetre1![perf_1_27] & ", supra_table_perimetre.perf_1_28 = " & oPerimetre1![perf_1_28] & "" _
            & ", supra_table_perimetre.perf_1_29 = " & oPerimetre1![perf_1_29] & ", supra_table_perimetre.perf_1_30 = " & oPerimetre1![perf_1_30] & "" _
            & ", supra_table_perimetre.perf_1_31 = " & oPerimetre1![perf_1_31] & ", supra_table_perimetre.perf_1_32 = " & oPerimetre1![perf_1_32] & "" _
            & ", supra_table_perimetre.perf_1_33 = " & oPerimetre1![perf_1_33] & ", supra_table_perimetre.perf_1_34 = " & oPerimetre1![perf_1_34] & "" _
            & ", supra_table_perimetre.perf_1_35 = " & oPerimetre1![perf_1_35] & ", supra_table_perimetre.perf_1_36 = " & oPerimetre1![perf_1_36] & "" _
            & ", supra_table_perimetre.perf_1_37 = " & oPerimetre1![perf_1_37] & ", supra_table_perimetre.perf_1_38 = " & oPerimetre1![perf_1_38] & "" _
            & ", supra_table_perimetre.perf_1_39 = " & oPerimetre1![perf_1_39] & ", supra_table_perimetre.perf_1_40 = " & oPerimetre1![perf_1_40] & "" _
            & ", supra_table_perimetre.perf_1_41 = " & oPerimetre1![perf_1_41] & ", supra_table_perimetre.perf_1_42 = " & oPerimetre1![perf_1_42] & "" _
            & ", supra_table_perimetre.perf_1_43 = " & oPerimetre1![perf_1_43] & ", supra_table_perimetre.perf_1_44 = " & oPerimetre1![perf_1_44] & "" _
            & ", supra_table_perimetre.perf_1_45 = " & oPerimetre1![perf_1_45] & ", supra_table_perimetre.perf_1_46 = " & oPerimetre1![perf_1_46] & "" _
            & "WHERE (((supra_table_perimetre.id_perimetre)= " & oPerimetre1![var_perimetre] & "));"
    Quelqu'un a-t-il vu ou se trouve mon erreur ??? Car moi je n'y arrive pas. D'avance merci;
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  8. #8
    Membre averti Avatar de mcdotta
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 292
    Points : 324
    Points
    324
    Par défaut
    Est-ce que tu es sûr que tous tes champs oPerimetre1![perf_1_XX] sont :


    1- remplis
    2- de type numérique


    ???

  9. #9
    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 : 41
    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
    Là, il faut debuguer. Tout à l'heure j'ai vu la virgule au hasard. Là je ne vois rien. Essaye un debug.print de la chaine sql comme te l'a recommandé demco déjà

  10. #10
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Bon j'ai essayé le Debug.Print, mais cela ne m'a pas permis de trouver la solution

    Mon code est le suivant :
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    Private Sub maj_Click()
        Dim myDb As DAO.Database
     
        Set myDb = CurrentDb
     
        'Récupération des éléments du pole
        Dim oPerimetre As DAO.Recordset
     
        Set myDb = CurrentDb
        Set oPerimetre = myDb.OpenRecordset("SELECT table.id_perimetre, table.id_zone, table.id_division " _
            & "FROM table " _
            & "WHERE (((table.id_perimetre)=" & get_var_id_perimetre() & "));")
     
        var_zone = oPerimetre![id_zone]
        var_division = oPerimetre![id_division]
        DoCmd.SetWarnings False
     
        'Création des données de cumul
        Dim oPerimetre1 As DAO.Recordset
        Set myDb = CurrentDb
     
        'Perf 1
        Set oPerimetre1 = myDb.OpenRecordset("SELECT table.id_division AS var_perimetre, " _
            & " Sum(table.perf_1_22) AS perf_1_22, Sum(table.perf_1_24) AS perf_1_24, Sum(table.perf_1_26) AS perf_1_26, Sum(table.perf_1_28) AS perf_1_28, Sum(table.perf_1_30) AS perf_1_30, " _
            & "Sum(table.perf_1_32) AS perf_1_32, Sum(table.perf_1_34) AS perf_1_34, Sum(table.perf_1_36) AS perf_1_36, Sum(table.perf_1_38) AS perf_1_38, " _
            & "Sum(table.perf_1_42) AS perf_1_42, Sum(table.perf_1_43) AS perf_1_43, Sum(table.perf_1_44) AS perf_1_44, Sum(table.perf_1_45) AS perf_1_45, Sum(table.perf_1_46) AS perf_1_46 " _
            & "FROM table " _
            & "GROUP BY table.id_division " _
            & "HAVING (((table.id_division) = " & var_division & ")) " _
            & "UNION SELECT table.id_zone AS var_perimetre, " _
            & "Sum(table.perf_1_22) AS perf_1_22, Sum(table.perf_1_24) AS perf_1_24, Sum(table.perf_1_26) AS perf_1_26, Sum(table.perf_1_28) AS perf_1_28, Sum(table.perf_1_30) AS perf_1_30, " _
            & "Sum(table.perf_1_32) AS perf_1_32, Sum(table.perf_1_34) AS perf_1_34, Sum(table.perf_1_36) AS perf_1_36, Sum(table.perf_1_38) AS perf_1_38, " _
            & "Sum(table.perf_1_42) AS perf_1_42, Sum(table.perf_1_43) AS perf_1_43, Sum(table.perf_1_44) AS perf_1_44, Sum(table.perf_1_45) AS perf_1_45, Sum(table.perf_1_46) AS perf_1_46 " _
            & "FROM table " _
            & "GROUP BY table.id_zone " _
            & "HAVING (((table.id_zone) = " & var_zone & "));")
     
        DoCmd.RunSQL = "UPDATE table SET table.perf_1_22 = " & oPerimetre1![perf_1_22] & ", " _
            & "table.perf_1_24 = " & oPerimetre1![perf_1_24] & ", " _
            & "table.perf_1_26 = " & oPerimetre1![perf_1_26] & ", " _
            & "table.perf_1_28 = " & oPerimetre1![perf_1_28] & ", " _
            & "table.perf_1_30 = " & oPerimetre1![perf_1_30] & ", " _
            & "table.perf_1_32 = " & oPerimetre1![perf_1_32] & ", " _
            & "table.perf_1_34 = " & oPerimetre1![perf_1_34] & ", " _
            & "table.perf_1_36 = " & oPerimetre1![perf_1_36] & ", " _
            & "table.perf_1_38 = " & oPerimetre1![perf_1_38] & ", " _
            & "table.perf_1_42 = " & oPerimetre1![perf_1_42] & ", " _
            & "table.perf_1_43 = " & oPerimetre1![perf_1_43] & ", table.perf_1_44 = " & oPerimetre1![perf_1_44] & ", " _
            & "table.perf_1_45 = " & oPerimetre1![perf_1_45] & ", table.perf_1_46 = " & oPerimetre1![perf_1_46] & "" _
            & " WHERE (((table.id_perimetre) = " & oPerimetre1![var_perimetre] & "));"
     
        DoCmd.SetWarnings True
        End Sub
    Mais cela bloque au niveau de : oPerimetre1![var_perimetre]
    Cela me sélectionne : ![var_perimetre]

    Et j'ai le message d'erreur suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Erreur de compilation:
    Argument non facultatif
    Mais je n'arrive pas à voir ce qu'il manque ou que j'ai mis en trop : : :

    Avez vous une idée
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  11. #11
    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 : 41
    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
    C'est uen abhération d'utiliser des requêtes si grande en VBA. Utilise les requêtes paramétrées, cela est fait pour ça. Microsoft déconseille l'utilisation de SQL dans VBA

  12. #12
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Mais quand, je fais une requête Sélection puis une réquete MàJ, cela ne veut pas le faire !!!

    Alors comment dois-je faire :
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  13. #13
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    J'ai essayé la méthode de Tofalu, j'ai créé une requête de cumul, et une requête de mise à jour, mais cela ne fonctionne pas...

    J'ai une message d'erreur sur la requête de cumul, qui est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    L'opération doit utiliser une requête qui peut être mise à jour
    Comment dois je faire pour parvenir à réaliser ce que je veux faire :

    Sachant : que les données cumulées sont issues de table A, et que les valeurs que je veux mettre à jour doivent aller dans la table A

    D'avance merci de vos réponses.
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  14. #14
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    slt,

    1 - tu ne peux pas mettre à jour une requête qui contient un cumul (avec un Group By), ça n'a aucun sens (c'est indiqué dans la FAQ, dans l'aide Access, et c'est logique)

    2 - pourquoi stocker tes cumuls?
    La raison la plus courante pour stocker des calculs c'est que les calculs sont trop complexes et donc prennent trop de temps pour pouvoir être calculés dynamiquement.
    Si le calcul des cumuls prend 10/100è de secondes il est inutile à priori de les stocker.
    Et à chaque modification dans la table tu dois recalculer tes cumuls donc tu risques de ne rien y gagner (voir d'y perdre du temps) et de peiner sur la maintenance de l'appli (pas de trigger dans Access, il faut donc demander la mise à jour des cumuls partout où ça doit l'être)

    3 - Dans le cas de cumul à stocker quand même (ça arrive) il ne faut pas les stocker dans la même table.
    Tu crées une table des cumuls, avec comme clé primaire id_zone (si j'ai bien tout compris) et tu ne stockes ainsi chaque cumul qu'une seule fois (sinon tu stockes chaque cumul autant de fois qu'il y a de lignes avec le même id_zone, et c'est ça que Access ne fait pas tout seul, heureusement).

Discussions similaires

  1. erreur incomprehensible dans un petit code
    Par feynman dans le forum Fortran
    Réponses: 1
    Dernier message: 29/12/2009, 23h45
  2. code erreur #nom dans formulaire
    Par valerie02 dans le forum IHM
    Réponses: 15
    Dernier message: 23/08/2007, 23h17
  3. Réponses: 5
    Dernier message: 22/05/2007, 10h04
  4. Réponses: 7
    Dernier message: 11/03/2007, 09h35
  5. erreur syntaxe dans le code
    Par Daniela dans le forum Access
    Réponses: 3
    Dernier message: 18/12/2006, 12h43

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