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

IHM Discussion :

erreur de syntaxe sur column(1) [AC-2003]


Sujet :

IHM

  1. #1
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 293
    Points : 91
    Points
    91
    Par défaut erreur de syntaxe sur column(1)
    Bonjour,

    j'ai le code suivant pour placer la date dans le prochain_etalon suivant la colonne du champ périodicité
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.prochaine_etalon_machine = Me.date_etalon_machine + Me.périodicité_etalon_machine.Column (1)
    Mais , je ne connais pas la syntaxe exacte pour faire mon calcul en vba
    le .column (1) me pose des soucis et malgré mes recherche , je cale ...

    Pouvez-vous me dire quelle est la bonne syntaxe...
    En vous remerciant

    Marcmarc150

  2. #2
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Bonjour,

    La syntaxe serait plutôt de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.prochaine_etalon_machine = DateAdd("m", Me.périodicité_etalon_machine.Column (1), Me.date_etalon_machine)
    Dans cet exemple, on rajoute autant de mois que le nombre de périodicité.

    Regarde dans l'aide les arguments de la fonction.

    Sinon, pour vérifier si tu récupères bien la valeur du champ périodicité, tu peux simplement inclure dans ton code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Me.périodicité_etalon_machine.Column (1)
    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  3. #3
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 293
    Points : 91
    Points
    91
    Par défaut
    merci une partie fonctionne , le calcul c'est ok,
    Dans le formulaire, il y a plusieurs enregistrements
    mais il me donne la mm réponse pour tous les enregistrements alors que les autres enregistrements sont des dates différentes et des périodicités différentes et dès lors la réponse du calcul doit être également différente....
    voila ,j'ai changé m mois par d date
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Me.prochaine_etalon_machine = DateAdd("d", Me.périodicité_etalon_machine.Column(1), Me.date_etalon_machine)
    MsgBox Me.périodicité_etalon_machine.Column(1)
    comment faire ? pour que les autres enregistrements soient calculés

    Merci

    Marcmarc150

  4. #4
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Comment se présente ton formulaire ? Les données sont-elles en mode continu ?

    Et où se trouve la liste déroulante périodicité_etalon_machine ?

    Dans l'entête du formulaire, ou bien sur chaque enregistrement ? Quelle en est la source ?

    Enfin, dans quel évènement as-tu placé ton code ?

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  5. #5
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 293
    Points : 91
    Points
    91
    Par défaut
    Le sous formulaire provient d'une requête juste pour une visualisation globale, donc il reprend tous les enregistrements de ma table étalonnage.
    ou se trouve
    "date_etalon",
    "periodicité_étalon" qui est une liste déroulante d'une autre table suivant le type de périodicité qui va de 1 jour a 5 ans,
    et "prochain_étalon"
    le but dans ce sous formulaire de visualisation était de faire le calcul sur les dates que j'avais réussi par le champ en mettant le code suivant dans le champ "prochain_étalon"
    =[date_etalon_machine]+périodicité_etalon_machine.column(1)
    ce qui fonctionnait bien,
    mais je n'arrive pas a afficher seulement les date qui sont inférieur a la date du jour d’où mes essais détournés qui sont un peu a la mac gyver , car je ne connais pas tout en access.
    je met un petite photo pour explication
    j'avais placer le code dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub Form_Load()
    Me.prochaine_etalon_machine = DateAdd("d", Me.périodicité_etalon_machine.Column(1), Me.date_etalon_machine)
    MsgBox Me.périodicité_etalon_machine.Column(1)
    End Sub
    Qui je suppose n'est surement pas a la bonne place....

    Marcmarc150
    Images attachées Images attachées  

  6. #6
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 293
    Points : 91
    Points
    91
    Par défaut
    Le sous formulaire provient d'une requête juste pour une visualisation globale, donc il reprend tous les enregistrements de ma table étalonnage.
    ou se trouve
    "date_etalon",
    "periodicité_étalon" qui est une liste déroulante d'une autre table suivant le type de périodicité qui va de 1 jour a 5 ans,
    et "prochain_étalon"
    le but dans ce sous formulaire de visualisation était de faire le calcul sur les dates que j'avais réussi par le champ en mettant le code suivant dans le champ "prochain_étalon"
    =[date_etalon_machine]+périodicité_etalon_machine.column(1)
    ce qui fonctionnait bien,
    mais je n'arrive pas a afficher seulement les date qui sont inférieur a la date du jour d’où mes essais détournés qui sont un peu a la mac gyver , car je ne connais pas tout en access.
    je met un petite photo pour explication
    j'avais placer le code dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub Form_Load()
    Me.prochaine_etalon_machine = DateAdd("d", Me.périodicité_etalon_machine.Column(1), Me.date_etalon_machine)
    MsgBox Me.périodicité_etalon_machine.Column(1)
    End Sub
    Qui je suppose n'est surement pas a la bonne place....

    Marcmarc150

  7. #7
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Pour autant que j'aie bien compris, je pense que passer par du code n'est pas nécessaire.

    Il serait plus simple de créer un champ calculé directement dans la requête.

    Et dans le formulaire, tu utilises la liste déroulante uniquement pour modifier le nombre de jour.

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  8. #8
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 293
    Points : 91
    Points
    91
    Par défaut
    ok, mais alors comment fait on un champ calculé dans la requête
    quelle est la bonne manière pour faire cela

    je n'en n'ai jamais fait et je dois dire que je cale bien fort la dessus
    et je dirai mm plus je ne m'en sors pas..!!!
    en copie, la requête

    Merci

    Marcmarc150
    Images attachées Images attachées  

  9. #9
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Bonjour,

    En mode création de ta requête, dans la première colonne libre, tu mets ton champ calculé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LeNomDuChamp: DateAdd("d"; [périodicité_etalon_machine]; [date_etalon_machine])
    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  10. #10
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 293
    Points : 91
    Points
    91
    Par défaut
    Merci pour l'info,
    mais quand je place le code dans la requête
    il me la change automatiquement en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cal_date: AjDate("d";[périodicité_etalon_machine];[date_etalon_machine])
    en lieu et place de l'info reçue qui est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cal_date: DateAdd("d"; [périodicité_etalon_machine]; [date_etalon_machine])
    et le calcul n'est pas juste alors

    merci a toi sur le temps que tu consacre à m'aider
    en te remerciant


    Marcmarc150

  11. #11
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Arf !

    AjDate() est l'équivalent français de DateAdd(). La conversion se fait automatiquement dans le QBE, mais pas pour l'argument Interval.

    Remplace "d" par "j".

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  12. #12
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 293
    Points : 91
    Points
    91
    Par défaut
    merci
    mais j'ai quand mm une erreur sur le résultat
    en copie l'image du résultat de la requête

    merci

    Marcmarc150
    Images attachées Images attachées  

  13. #13
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Pourrais-tu poster ta table avec quelques données et tes deux requêtes dans une application au format 2000 zippée ?

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  14. #14
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 293
    Points : 91
    Points
    91
    Par défaut
    ok,
    je fais cela pour début d’après midi

    en te remerciant

    Marcmarc150

  15. #15
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    J'ai essayé de faire un test vite fait.

    Avec "j", j'ai effectivement une erreur.

    Par contre, avec "d", mon résultat semble correct.

    Tu peux revérifier ?

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  16. #16
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 293
    Points : 91
    Points
    91
    Par défaut
    slt,
    voila, j'ai sorti en une partie
    la voici
    j'ai remarquer lors du calcul , il ne prend pas la bonne référence de la colonne périodicité, on dirait qu'il prend l'identifiant de la clé primaire et pas le nombre prévu par la périodicité

    Marcmarc150
    Fichiers attachés Fichiers attachés

  17. #17
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Re,

    Effectivement. Modifications à apporter dans la table, dans le champ périodicité_etalon_machine, onglet Liste de choix :

    Contenu : SELECT tbl_periodicite.nombre_jours_periodicite, tbl_periodicite.libelle_periodicite FROM tbl_periodicite ORDER BY [nombre_jours_periodicite];.
    Colonne liée : 1
    Nbre colonnes : 2
    Largeurs colonnes : 2.54cm;2.54cm

    Et le code dans la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cal_date: AjDate("j";[périodicité_etalon_machine];[date_etalon_machine])
    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  18. #18
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 293
    Points : 91
    Points
    91
    Par défaut
    sorry,
    malgré toute bonne volonté, je n'y arrive pas a affecter la valeur
    m^eme avec ton aide et meme en recommencant le champ périodicité...

    j'ai encore beaucoup a apprendre....

    j'ai remis en annexe test2
    Marcmarc
    Fichiers attachés Fichiers attachés

  19. #19
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Il faut faire les choses au bon endroit.

    D'abord, à quoi te sert le champ calculé périodicité dans ta requête (tout à droite) ? A rien, puisqu'il ne fait que reprendre la valeur du champ périodicité_etalon_machine Déjà dans la table. A supprimer !

    Ensuite, dans la table tbl_etalon_machine, dans le champ Description, tu supprimes les SELECT... Rien à faire ici.

    Puis tu positionnes le curseur dans le champ périodicité_etalon_machine. Au bas de l'écran tu as la zone Propriété du champ, avec deux onglets, "Général" et "Liste de choix". tu cliques sur "Liste de choix" et là, tu fais les modifications indiquée plus haut.

    Contenu : SELECT tbl_periodicite.nombre_jours_periodicite, tbl_periodicite.libelle_periodicite FROM tbl_periodicite ORDER BY [nombre_jours_periodicite];.
    Colonne liée : 1
    Nbre colonnes : 2
    Largeurs colonnes : 2.54cm;2.54cm

    Si tu veux voir le libellé de la périodicité plutôt que le nombre de jour, tu mets simplement la largeur de la première colonne à 0.

    Une dernière chose que tu dois faire, c'est saisir à nouveau dans ta table les périodicités, parce qu'actuellement, comme tu l'avais deviné, les valeurs affichées sont celles de l'Id des enregistrements, et non le nombre de jour des périodicités.

    Le champ calculé est correct, tu n'as rien à modifier là.

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  20. #20
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 293
    Points : 91
    Points
    91
    Par défaut
    Domi2,
    Merci de toute l'aide et surtout de ta patience,

    Tout fonctionne nickel...

    *champ périodicité_etalon_machine Déjà dans la table. est supprimer !
    je l'avais placer pour test de valeur, je sais qu'il était en doublon
    les lignes select dans la table était juste pour faire la comparaison entre les deux lignes elles sont supprimées également
    dans la table j'ai modifier les valeur périodicité, c'est ok aussi
    je croyais que dans la requête il fallait également le nombre de jours et non pas le libellé, mais cela fonctionne super bien...
    je vais réadapter le tout

    En te remerciant du temps passé pour m'aider dans cette nouvelle acquisition de savoir..

    mille fois merci

    Marcmarc150

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

Discussions similaires

  1. [MySQL] Erreur de syntaxe sur requête
    Par winnie82 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 21/03/2006, 13h51
  2. [MySQL] Erreur de syntaxe sur ma requête SELECT
    Par vincedjs dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 08/03/2006, 11h50
  3. [MySQL] Erreurs de syntaxe sur requêtes DELETE
    Par vincedjs dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 06/03/2006, 15h53
  4. Erreur de syntax sur JOIN
    Par helje dans le forum Requêtes
    Réponses: 2
    Dernier message: 05/03/2006, 17h36
  5. Erreur de syntaxe sur la création d'une vue.
    Par cgougeon dans le forum Installation
    Réponses: 3
    Dernier message: 09/09/2005, 11h00

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