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 selon 2 critères plantage access [AC-2007]


Sujet :

VBA Access

  1. #1
    Membre averti Avatar de robyseb
    Homme Profil pro
    Programmeur-Analyste
    Inscrit en
    Juillet 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur-Analyste
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2011
    Messages : 305
    Points : 423
    Points
    423
    Par défaut Ouverture Formulaire selon 2 critères plantage access
    Bonjour ! Voici un bout de code que j'ai écrit afin de pouvoir ouvrir un formulaire selon 2 critères soit Prenom et nom j'ai tenté plusieurs approche mais il n'y a pas grand chose qui fonctionne et même que ma dernière tentative crash access .... En rajoutant (DBopenDynaset) poufff access ne répond plus.
    Biensur si vous avez des idées pour changer ma méthode elle est la bienvenue merci de m'aidez à résoudre un autre problématique les amis.

    voici le code placé sur le formulaire qui contient les critères :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub choixpatient_AfterUpdate()
    Dim choixpatient1 As String
    Dim choixpatient2 As String
    choixpatient1 = Me.choixpatient.Column(1)
    choixpatient2 = Me.choixpatient.Column(2)
    DoCmd.Close
    DoCmd.OpenForm "rapportintervention", acNormal, , , , , "" & choixpatient1 & " ; " & choixpatient2 & ""
    logEntrylIVE ("Ouverture du Rapport d'intervention de " & choixpatient1 & " " & choixpatient2 & "")
     
    choixpatient1 = ""
    choixpatient2 = ""
    End Sub


    Voici le code placé sur le formload du formulaire Rapport d'intervention .

    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
    Dim identitePatient As Variant
    Dim PrenomPatientArg As String
    Dim NomPatientArg As String
     
    identitePatient = Split(Me.OpenArgs, ";")
     
    prenompatientArg =  identitePatient(0)
    nompatientArg =  identitePatient(1)
     
     
    Dim MaTable As dao.Recordset
    Dim db As dao.Database
    Set MaTable = CurrentDb.OpenRecordset("tbl_rapportintervention", dbOpenDynaset)'ici j'ai le plantage si je l'enlève j'ai une erreur 3251 "opération non autorisé pour se type d'objet"
    Do Until MaTable.EOF = True
            MaTable.FindFirst "[Nompatient] = '" & NomPatientArg & "' AND [Prenompatient] = '" & PrenomPatientArg & "'" 'qui me souligne cette ligne 
     
     
    MaTable.MoveNext
    Loop
    MaTable.Close
     
     
    End If
    Parfois il faut faire le tour d'une roche 10 fois avant de s'apercevoir quelle est ronde.
    • Si vous trouvé mon post intéressant, n'oubliez pas de voter coté inférieur droit du message. Merci
    • Si votre Post est indiquez le....
    • Celuil là je devait le mettre ici ....hihi -->

  2. #2
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    Bonjour,
    Et sans préciser ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set MaTable = CurrentDb.OpenRecordset("tbl_rapportintervention")

  3. #3
    Membre averti Avatar de robyseb
    Homme Profil pro
    Programmeur-Analyste
    Inscrit en
    Juillet 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur-Analyste
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2011
    Messages : 305
    Points : 423
    Points
    423
    Par défaut
    Salut merci de m'aider

    si je l'enlève j'ai une erreur 3251 "opération non autorisé pour se type d'objet"
    et l'éditeur souligne cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaTable.FindFirst "[Nompatient] = '" & NomPatientArg & "' AND [Prenompatient] = '" & PrenomPatientArg & "'"
    je me demandais si ceci pourrait fonctionner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.FindRecord "nompatient=' & NomPatientArg & '" And "prenompatient=' & PrenomPatientArg & '", acAnywhere, False, , True, acAll
    Parfois il faut faire le tour d'une roche 10 fois avant de s'apercevoir quelle est ronde.
    • Si vous trouvé mon post intéressant, n'oubliez pas de voter coté inférieur droit du message. Merci
    • Si votre Post est indiquez le....
    • Celuil là je devait le mettre ici ....hihi -->

  4. #4
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    Après avoir testé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set MaTable = CurrentDb.OpenRecordset("tbl_rapportintervention", dbOpenSnapshot)
    ne retourne pas d'erreur

  5. #5
    Membre averti Avatar de robyseb
    Homme Profil pro
    Programmeur-Analyste
    Inscrit en
    Juillet 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur-Analyste
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2011
    Messages : 305
    Points : 423
    Points
    423
    Par défaut
    salut je ne comprend pas moi access cesse de répondre et crash ...
    Parfois il faut faire le tour d'une roche 10 fois avant de s'apercevoir quelle est ronde.
    • Si vous trouvé mon post intéressant, n'oubliez pas de voter coté inférieur droit du message. Merci
    • Si votre Post est indiquez le....
    • Celuil là je devait le mettre ici ....hihi -->

  6. #6
    Membre averti Avatar de robyseb
    Homme Profil pro
    Programmeur-Analyste
    Inscrit en
    Juillet 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur-Analyste
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2011
    Messages : 305
    Points : 423
    Points
    423
    Par défaut
    Je vais tenter d'expliquer ce que je désire faire !

    1- j'ai un formulaire "choixrapport" qui possède une liste déroulante avec 3 colones qui affiche le prénom et nom d'un patient donc sur le "afterupdate" de la liste j'ai écrit ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub choixpatient_AfterUpdate()
    Dim choixpatient1 As String
    Dim choixpatient2 As String
    choixpatient1 = Me.choixpatient.Column(1)
    choixpatient2 = Me.choixpatient.Column(2)
    DoCmd.Close
    DoCmd.OpenForm "rapportintervention", acNormal, , , , , "" & choixpatient1 & " ; " & choixpatient2 & ""
     
     
    choixpatient1 = ""
    choixpatient2 = ""
    End Sub
    Ensuite lors de l'ouverture du formulaire je veut trouver le premier record qui match les 2 variables soit "choixpatient1" et "choixpatient2" donc j'ai écrit au formload du formulaire ce code mais ca ne fonctionne toujour pas même avec tes indications HELAS est-ce que vous pensées à une autre méthode qui pourrait fonctionner
    Parfois il faut faire le tour d'une roche 10 fois avant de s'apercevoir quelle est ronde.
    • Si vous trouvé mon post intéressant, n'oubliez pas de voter coté inférieur droit du message. Merci
    • Si votre Post est indiquez le....
    • Celuil là je devait le mettre ici ....hihi -->

  7. #7
    Membre averti Avatar de robyseb
    Homme Profil pro
    Programmeur-Analyste
    Inscrit en
    Juillet 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur-Analyste
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2011
    Messages : 305
    Points : 423
    Points
    423
    Par défaut
    Bonjour à tous j'ai résolu mon problème .... je vous explique j'ai rajouté un champ dans ma table qui contient maintenant le prenom et nom regroupé qui s'enregistre lors de la sauvegarde du formulaire! Je devait m'y prendre de cette manière puisque si j'avait 2 pierre par exemple ca aurai causé problème et je doit continuer d'utiliser un champ séparé pour le Prénom et le nom

    Sous mon code du premier formulaire ChoixPatient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub choixpatient_AfterUpdate()
    Dim choixpatient1 As String
    Dim choixpatient2 As String
    Dim choixpatient As String
    choixpatient1 = Me.choixpatient.Column(1)
    choixpatient2 = Me.choixpatient.Column(2)
    choixpatient = "" & choixpatient1 & "" & choixpatient2 & ""
     
    DoCmd.Close
    DoCmd.OpenForm "rapportintervention", acNormal, , , , , "" & choixpatient & ""
    j'ai créer une variable qui regroupe le prenom et le nom !

    Ensuite lors du FormLoad du rapport :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim identitePatient As Variant
     
        identitePatient = Me.OpenArgs
        Me.Nomcomplet.Visible = True
       DoCmd.FindRecord identitePatient, acAnywhere, False, , True
        Me.PrenomPatient.SetFocus
        Me.Nomcomplet.Visible = False
    je recherche la nouvelle case qui contient le prenom et nom regroupé et voila !!

    En espérant que ca puisse aider quelqu'un d'autre merci
    Parfois il faut faire le tour d'une roche 10 fois avant de s'apercevoir quelle est ronde.
    • Si vous trouvé mon post intéressant, n'oubliez pas de voter coté inférieur droit du message. Merci
    • Si votre Post est indiquez le....
    • Celuil là je devait le mettre ici ....hihi -->

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

Discussions similaires

  1. [AC-2007] Ouvrir un formulaire selon des critères d'un autre formulaire
    Par glooping dans le forum IHM
    Réponses: 7
    Dernier message: 24/07/2009, 16h03
  2. ouverture formulaire selon valeur d'un champ
    Par toine38 dans le forum IHM
    Réponses: 1
    Dernier message: 17/02/2008, 19h52
  3. rechercher dans sous formulaire selon 1 critère
    Par cilcemax dans le forum IHM
    Réponses: 2
    Dernier message: 05/02/2008, 18h05
  4. Affichage données formulaires selon 3 critères
    Par barbapapa2 dans le forum IHM
    Réponses: 2
    Dernier message: 17/12/2007, 10h09
  5. Réponses: 2
    Dernier message: 11/09/2006, 10h17

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