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 :

Ouvrir formulaire sur un enregistrement


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2014
    Messages : 40
    Points : 18
    Points
    18
    Par défaut Ouvrir formulaire sur un enregistrement
    Bonjour à tous,

    Voici mon problème.

    J'ai dans ma base un formulaire INCLUSION qui correspond a un patient avec son numéro de patient (numéro de patient = clé de la table INCLUSION correspondant au formulaire). Cette table est liée à de nombreuses autres tables par la clé numéro de patient. Pour chacune de ces tables, j'ai crée un formulaire.

    Enfin, j'ai crée un menu (NAVIGATION) me permettant de choisir un numéro de patient dans une liste déroulante et avec des boutons commande d'afficher les différents formulaires renvoyant à ce patient. Mon problème est que le code qui va avec mon bouton commande fonctionne parfaitement pour 6 de mes formulaires et ne fonctionne pas avec les 5 autres. Pour ces 5 derniers formulaires, ceux-ci s'ouvrent vierges et sans retour d'erreur de la part d'access.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Commande25_Click()
    DoCmd.OpenForm "INCLUSION", , , "NUMPAT=Forms!NAVIGATION!NUMPAT"
    End Sub
    Mais comme je vous l'ai dit ce code fonctionne parfaitement avec 6 des mes formulaires présent sur le même formulaire navigation ! Cela ne vient donc probablement pas du code mais plutôt des 5 formulaires qui ne fonctionnent pas en eux-mêmes... mais quelles peut être la source de l'erreur ?

    Merci beaucoup,

    Tagada_or

  2. #2
    Expert éminent

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

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Bonsoir,

    Par hasard, est-ce que les autres tables ont bien le champ "NUMPAT" ???
    De plus, pour être meilleur, dans ton code Forms!NAVIGATION!NUMPAT ne devrait pas être entre guillemets vu que c'est un variable et non une expression fixe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Commande25_Click()
    DoCmd.OpenForm "INCLUSION", , , "NUMPAT=" & Forms!NAVIGATION!NUMPAT
    End Sub
    Cordialement,

  3. #3
    Membre à l'essai
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2014
    Messages : 40
    Points : 18
    Points
    18
    Par défaut
    Bonjour Madefemere,

    Merci pour ce retour.
    Oui, toutes les autres tables ont bien le champ NUMPAT. Malheureusement le résultat est le même avec le code que vous m'avez donné ! Certains des formulaires s'affichent toujours sur une page vierge bien que le numéro de patient soit sélectionné alors que d'autres fonctionnent parfaitement... Je ne comprends pas d'où peut bien provenir l'erreur.

    Merci,

    Tagada_or

  4. #4
    Expert éminent

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

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

    Là, sans les détails, difficile d'apporter plus. Peux-tu poster ta base minimalisée sans les données sensibles et indiquer quels formulaires te font des misères.

    @+

  5. #5
    Membre chevronné Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Points : 2 019
    Points
    2 019
    Par défaut
    Bonjour tous
    sur ta feuille des propriétés Entrée données est bien sur non ?

  6. #6
    Membre à l'essai
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2014
    Messages : 40
    Points : 18
    Points
    18
    Par défaut
    Bonjour et merci à tous les deux pour vos retours,

    Renardo, effectivement sur ma feuille des propriétés "Entrée Données" était sur Oui et cela fonctionne maintenant que je l'ai mis sur Non.

    Si je peux abuser un peu de vos connaissance, je souhaite maintenant pour l'ouverture d'un des formulaire (VISITE) ajouter une deuxième condition portant sur le numéro de la visite avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Commande25_Click()
    DoCmd.OpenForm "VISITE", , , "NUMPAT=" & Forms!NAVIGATION!NUMPAT and "NUMVIS="4
    End Sub
    Or access m'affiche une erreur Incompatibilité de type. Je suppose que l'erreur vient de la syntaxe pour ma deuxième condition mais j'ai essayé plusieurs possibilités et rien ne marche. Savez-vous quelle est la syntaxe correcte ?

    Merci encore,

    Tagada_or

  7. #7
    Expert éminent

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

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Je suis content que c'est résolu; Pour ta question, un critère est une expression = texte donc tu peux avoir des concaténations de valeurs fixe et de variable.
    Ici,
    1- NUMPAT= est fixe
    2- Forms!NAVIGATION!NUMPAT est variable
    3- And [NUMVIS]= est fixe
    4- 4 est fixe

    Si 4 est fixe, t'auras :
    Private Sub Commande25_Click()
    DoCmd.OpenForm "VISITE", , , "NUMPAT=" & Forms!NAVIGATION!NUMPAT "AND NUMVIS=4"
    End Sub

    Si à la place du 4, tu as un variable disons varNumVis, t'auras :
    Private Sub Commande25_Click()
    DoCmd.OpenForm "VISITE", , , "NUMPAT=" & Forms!NAVIGATION!NUMPAT & "AND NUMVIS=" & varNumVis
    End Sub

    Bonne continuation

  8. #8
    Membre à l'essai
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2014
    Messages : 40
    Points : 18
    Points
    18
    Par défaut
    Merci Madefemere,

    Seulement avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Commande25_Click()
    DoCmd.OpenForm "VISITE", , , "NUMPAT=" & Forms!NAVIGATION!NUMPAT "AND NUMVIS=4"
    End Sub
    J'obtiens l'erreur immédiate "Erreur de compilation, Attendu : Fin d'instruction"


    J'ai essayé avec la syntaxe suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Commande25_Click()
    DoCmd.OpenForm "VISITE", , , "NUMPAT=" & Forms!NAVIGATION!NUMPAT AND "NUMVIS=4"
    End Sub
    Cela ne me renvoit pas d'erreur immédiate mais lors de l'exécution du code j'ai l'erreur ci-dessous :
    Nom : Capture.PNG
Affichages : 120
Taille : 10,8 Ko

    ... Que faire ?

    Merci,

    Tagada_or

  9. #9
    Expert éminent

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

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Désolé, une erreur de ma part le & a sauté avant le AND , plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Commande25_Click()
    DoCmd.OpenForm "VISITE", , , "NUMPAT=" & Forms!NAVIGATION!NUMPAT  & "AND NUMVIS=4"
    End Sub

  10. #10
    Membre à l'essai
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2014
    Messages : 40
    Points : 18
    Points
    18
    Par défaut
    Merci beaucoup,

    Cela fonctionne parfaitement maintenant !

    Merci encore,

    Tagada_or

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

Discussions similaires

  1. [AC-2010] Ouvrir formulaire sur un enregistrement précis
    Par alexbrabo dans le forum IHM
    Réponses: 4
    Dernier message: 20/08/2013, 15h53
  2. Réponses: 2
    Dernier message: 21/12/2006, 09h26
  3. Réponses: 5
    Dernier message: 01/08/2006, 14h39
  4. Ouvrir un formulaire sur un enregistrement donné
    Par gaetanc15 dans le forum Langage
    Réponses: 6
    Dernier message: 14/03/2006, 10h19
  5. Réponses: 1
    Dernier message: 12/12/2005, 16h11

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