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 :

Pb DoCmd.GoToRecord sur critère [AC-2010]


Sujet :

VBA Access

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    465
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 465
    Points : 149
    Points
    149
    Par défaut Pb DoCmd.GoToRecord sur critère
    Bonjour la communauté,

    J'ai un report faisant appel à une requête absence. Dans le report j'ai un bouton de commande79. Je voudrais que lorsque j'appuie dessus il m'affiche le record X avec pour code Y (de la requête absence). Le code ci-dessous m'affiche "Erreur d'exécution 1498 - Le type d'une expression entrée pour un des arguments est incorrect."

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Commande79_Click()
    DoCmd.GoToRecord acActiveDataObject, , acGoTo, "Code = " & Me.code
    End Sub
    Quelqu'un a-t-il une idée d'où se trouve l'erreur ?

    Merci d'avance

    Habiler

  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,

    Est-ce que tu as regardé l'aide pour la méthode "GoToRecord" en appuyant sur F1 ?
    Ce que tu veux faire n'est pas possible avec cette méthode.
    Il faut plutôt utiliser le BookMark du RecordSetClone si tu es dans un formulaire.
    Parce que quand tu parles de Report, j'imagine que tu te trompes de vocabulaire pour pouvoir utiliser un bouton dans un état.

    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 éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Bonjour,
    Petite correction
    Dans un état il est possible de mettre des boutons. Seulement, ils n'apparaîtront pas à l'impression (ce qui inclut l'aperçu avant impression). Et il est possible d'y placer du code. Je viens d'essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Commande23_Click()
        DoCmd.GoToRecord acDataReport, Me.Name, acLast
    End Sub
    Et ça marche au poil

    Pour répondre à ton problème, je suppose que le champ Code est une chaîne de caractères. Et une chaîne de caractères doit être entourée de guillemets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Commande79_Click()
    DoCmd.GoToRecord acActiveDataObject, , acGoTo, "Code = '" & Me.code & "'"
    End Sub
    Tiens-nous au courant !
    L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!

  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
    Paidge,

    J'ai vu que ça existait, mais il ne m'est jamais venu à l'idée d'afficher un état "en production" autre qu'en "aperçu avant impression" ou "en création cachée" pour modifier certaines choses (quand on ne peut faire vraiment autrement).
    Mais à chacun ses habitudes et façons après.

    Bonne continuation à vous
    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 habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    465
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 465
    Points : 149
    Points
    149
    Par défaut
    Merci pour ton aide.

    J'ai adapté le code en ajoutant un requery mais maintenant il m'indique une erreur l'objet 3432 n'est pas ouvert. 3432 étant la valeur entré via Me.Matricule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Command77_Click()
    Requery
       DoCmd.GoToRecord acDataReport, Me.Matricule, acLast
     
    End Sub
    La deuxième solution ne m'affiche pas de message d'erreur mais ne donne aucun résultat. Rien ne change
    bonne soirée

    Habiler

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    C'est parce que le 2ème paramètre de la fonction Docmd.GoToRecord doit être le nom de l'objet que l'on souhaite parcourir (ici le nom de ton état). Si le bouton est bien sur ton état, le code doit correspondre à peu près à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Commande23_Click()
        DoCmd.GoToRecord acDataReport, Me.Name, "nomDuChamp=" & Me.Matricule
    End Sub
    nomDuChamp correspond au nom du champ de ta source de données qui stocke le matricule. Comme je te l'ai dit plus haut, si Me.Matricule est une chaîne de caractères, il faut l'entourer de guillemets.
    L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    465
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 465
    Points : 149
    Points
    149
    Par défaut
    bonsoir,

    J'ai essayé les deux codes ci-dessous, mais aucun des deux ne fonctionne.
    Je suis à côté de la plaque

    Merci pour votre aide


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    'Private Sub Command77_Click()
    'Requery
    '
    '   DoCmd.GoToRecord acDataReport, Me.Name, "Matricule =" & Me.Matricule, acLast
    ''Requery
    'End Sub
     
    Private Sub Command77_Click()
      DoCmd.GoToRecord acDataReport, Me.Name, Matricule & Me.Matricule
    End Sub
    Bonne soirée

    habiler

  8. #8
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Et as-tu essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Commande77_Click()
        DoCmd.GoToRecord acDataReport, Me.Name, "nomDuChamp='" & Me.Matricule & "'"
    End Sub
    Je t'ai dit que s'il s'agissait d'une chaîne de caractères, il fallait l'entourer de guillemets
    L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    465
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 465
    Points : 149
    Points
    149
    Par défaut
    Bonsoir la communauté,

    En faite matricule est du type nombre. J'ai donc enlevé les guillemets et il me donne une erreur Type mismatch.

    Je n'en sors décidément pas. Et plus j'essaye plus je m'énerve et moins ça marche.


    Bonne soirée

    Habiler

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    465
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 465
    Points : 149
    Points
    149
    Par défaut
    Bon dimanche à tous,

    J'ai essayé ce code (ajout d'un requeryà) ce matin et il marche nickel.

    Merci de votre aide et celui de Paidge en particulier

    Habiler.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ]Private Sub Command77_Click()
     
         DoCmd.GoToRecord acDataReport, Me.Name, Me.Matricule = 3478
         Requery
    End Sub

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

Discussions similaires

  1. ou mettre le DoCmd.GoToRecord , , acNewRec ??
    Par decour dans le forum Access
    Réponses: 2
    Dernier message: 14/07/2017, 15h26
  2. [AC-97] Docmd.gotorecord sur évènement AfterInsert
    Par paidge dans le forum VBA Access
    Réponses: 7
    Dernier message: 30/01/2012, 17h38
  3. Edition d'état sur critères
    Par Flblbl dans le forum IHM
    Réponses: 6
    Dernier message: 01/08/2006, 14h02
  4. [Xpath] Selection d'attributs sur critère
    Par lolo_ici_et_la dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 22/03/2006, 22h04
  5. Problème recherche sur critère
    Par Sendo dans le forum Access
    Réponses: 1
    Dernier message: 08/03/2006, 00h51

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