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 :

Ouverture formulaire sur enregistrement précis [AC-2010]


Sujet :

VBA Access

  1. #1
    Membre régulier
    Homme Profil pro
    Technicien de laboratoire
    Inscrit en
    Août 2013
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien de laboratoire
    Secteur : Santé

    Informations forums :
    Inscription : Août 2013
    Messages : 172
    Points : 93
    Points
    93
    Par défaut Ouverture formulaire sur enregistrement précis
    Bonjour à vous.

    Je sais que la question a déjà été posée plusieurs fois mais je ne trouve pas la solution à mon problème...

    J'ai un formulaire, en affichage formulaire continu, dans lequel plusieurs lignes sont affichées avec divers boutons dont un pour modifier les données de la ligne (appelé ModifLigne) et quand je clique dessus, j'ouvre un autre formulaire basé sur la même table et en affichage formulaire unique.

    Sur l'évènement clic de ce bouton j'ai mis ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "NomFormulaire", , , "[CritereCible]=" & Me![CritereSource], , acDialog
    mais je n'arrive pas à accéder aux enregistrements voulus, je n'ai que le dernier enregistrement qui s'affiche. J'ai alors ajouté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunCommand acCmdSelectRecord
    Même résultat...

    Pourriez-vous m'aider SVP. Merci

  2. #2
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Il semble qu'il te faudrait un critere plus précis pour récupérer l'enregistrement que tu souhaites ou alors ajouter un critère supplémentaire dans ta sélection

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "NomFormulaire", , , "[CritereCible]=" & Me![CritereSource] & " AND AutreCritere = " & SecondeValeur, , acDialog
    Attention, si lze second critère est alpha, il faut utiliser des cotes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "NomFormulaire", , , "[CritereCible]=" & Me![CritereSource] & " AND AutreCritere = '" & SecondeValeur & "'", , acDialog
    Bonne continuation
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  3. #3
    Membre régulier
    Homme Profil pro
    Technicien de laboratoire
    Inscrit en
    Août 2013
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien de laboratoire
    Secteur : Santé

    Informations forums :
    Inscription : Août 2013
    Messages : 172
    Points : 93
    Points
    93
    Par défaut
    Salut Jeannot

    J'ai essayé ce que tu m'as donné mais ce ne marche pas le formulaire s'ouvre entièrement vide en mode filtré (ce qui me parait logique) alors qu'il y a des données d'enregistrées dans la table en question.

    Je te donne le code exact :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "F_Conges", , , "[DateD]=" & Me![DateD] & " AND DateF = " & Me![DateF], , acDialog
    Merci

  4. #4
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "F_Conges", , , "[DateD]=" & Me![DateD] & " AND DateF = " & Me![DateF], , acDialog
    Est-ce que les champ DateD et DateF sont de type Date ?
    Dans ce cas, il faut modifier ta ligne de commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "F_Conges", , , "[DateD]=#" & Format(Me![DateD],"mm/dd/yy") & "# AND DateF = #" & Format(Me![DateF],"mm/dd/yy) & "#", , acDialog
    Bonne continuation
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  5. #5
    Membre régulier
    Homme Profil pro
    Technicien de laboratoire
    Inscrit en
    Août 2013
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien de laboratoire
    Secteur : Santé

    Informations forums :
    Inscription : Août 2013
    Messages : 172
    Points : 93
    Points
    93
    Par défaut
    J'ai bien utilisé ton code mais ca ne marche pas ca me met erreur de compilation : erreur de syntaxe

    Je pense avoir trouvé quelques erreurs et j'ai corrigé ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "F_Conges", , , "[DateD]=#" & Format(Me![DateD], "dd/mm/yyyy") & "#" And "[DateF]=#" & Format(Me![DateF], "dd/mm/yyyy") & "#", , acDialog
    J'obtiens Erreur d'exécution '13' : Incompatibilité de type

    J'ai modifié ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "F_Conges", , , "[NumConge]=" & Me![NumConge],,acDialog
    le formulaire cible s'ouvre correctement mais avec l'enregistrement le plus haut dans mon formulaire source... Je commence à désespérer...

  6. #6
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Excuse moi pour l'erreur, en effet, j'avais oublié des "dans la syntaxes en voulant mettre des couleurs dans le texte.
    Pour ce qui est du message d'erreur : incompatibilité de type. Il vient du fait qu'on a considéré que tes critères étaient de type date.

    En fait je te donne des indications en fonction de ce que je lis entre lies lignes de tes posts.
    Je ne connais pas la source de ton formulaire Principal, de ton sous formulaire.
    Y a -t-il une donnée qui définisse comme unique un enregistrement de ton sou formulaire ?

    Peux-tu mettre un extrait de ta base avec le formulaire, le sous formulaire et les sources de ceux-ci. Ce sera plus concret et je pourrais mieux t'aider.

    Bonne continuation
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  7. #7
    Membre régulier
    Homme Profil pro
    Technicien de laboratoire
    Inscrit en
    Août 2013
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien de laboratoire
    Secteur : Santé

    Informations forums :
    Inscription : Août 2013
    Messages : 172
    Points : 93
    Points
    93
    Par défaut
    Il existe bien une donnée unique, il s'agit de [NumConge] (clé primaire en numéro auto) mais avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DoCmd.RunCommand acCmdSelectRecord
    DoCmd.OpenForm "F_Conges", , , "[NumConge]=" & Me![NumConge],,acDialog
    ca ne fonctionne pas comme je veux. Ca sélectionne le [NumConge] de la ligne la plus haute dans mon formulaire continu (F_Conges2 dans la bdd) et du coup dans le formulaire unique (F_Conges dans la bdd) je n'ai pas le bon enregistrement.

    Je te post l'extrait de la base de données :

    https://www.dropbox.com/s/2g2qgl6y2i2mcgd/bdd_Tazzou.accdb?dl=0

    En vérifiant, j'ai le même problème avec l'affichage de l'état en cliquant sur l'icone avec l'imprimante.

    Je te remercie de ton aide.

  8. #8
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Ca y est je viens de recreuser le fonctionnement de ta base.

    Pour que ton enregistrement s'affiche bien dans ton formulaire "F_Conges", il faut que dans la liste des congés tu actives l'enregistrement sur le quel tu veux intervenir en cliquant sur le sélecteur à gauche de l'enregistrement.
    Pour ton état, il suffit de compléter la ligne de commande.

    Je te renvoie ta base avec les modifs

    Bonne continuation
    Fichiers attachés Fichiers attachés
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  9. #9
    Membre régulier
    Homme Profil pro
    Technicien de laboratoire
    Inscrit en
    Août 2013
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien de laboratoire
    Secteur : Santé

    Informations forums :
    Inscription : Août 2013
    Messages : 172
    Points : 93
    Points
    93
    Par défaut
    Salut Jeannot

    J'ai suivi tes conseils et du coup j'ai mis un bouton sans aucune action afin de sélectionner l'enregistrement voulu avant de cliquer sur l'image et ca marche!!! youhou!!!

    Merci beaucoup pour tes conseils et ton aide

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

Discussions similaires

  1. [Toutes versions] Probleme ouverture formulaire sur un enregistrement préci
    Par azur123 dans le forum VBA Access
    Réponses: 1
    Dernier message: 17/08/2012, 23h43
  2. [AC-2002] Ouverture formulaire sur nouvel enregistrement
    Par Auron89 dans le forum IHM
    Réponses: 8
    Dernier message: 07/06/2010, 07h47
  3. Ouverture d'un formulaire sur enregistrement précis
    Par Gremandine dans le forum VBA Access
    Réponses: 3
    Dernier message: 13/04/2010, 11h25
  4. [AC-2003] Ouvrir sous formulaire sur enregistrement précis
    Par mercatog dans le forum IHM
    Réponses: 2
    Dernier message: 26/07/2009, 17h17
  5. Ouverture formulaire sur enregistrement precis
    Par mat_lefebvre dans le forum IHM
    Réponses: 7
    Dernier message: 11/10/2004, 15h37

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