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 :

Un formulaire pour plusieurs mode ?!


Sujet :

VBA Access

  1. #1
    Membre habitué Avatar de 4rocky4
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    528
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 528
    Points : 180
    Points
    180
    Par défaut Un formulaire pour plusieurs mode ?!
    Bonjour,

    Je voudrais avoir quelques conseils et enventuellement une aide.
    Est-il possible d'avoir un formulaire et pouvoir l'ouvrir en mode Ajout, Modification, Consultation, Suppression en fonction de notre besoin ?
    Par exemple avoir un menu, et un bouton AJOUT, MODIFICATION ...

    Ou alors il faut que je fasse plusieurs formulaires ?

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Re

    Pas besoin de plusieurs formulaires.

    Voici une idée possible (il y'en a d'autres).

    Tu ouvres ton formulaires avec l'instruction
    Le dernier paramètre (voir l'aide) te permet de passer une valeur.

    Tu récupéres cette valeur avec la propriété
    Sur le Load de ton formulaire tu tests cette valeur avec un Select Case, pour avoir quelque chose de ce type.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Select Case Me.OpenArgs
         Case "Ajout"
         ' tu mets ton code
         Case "Modification"
         ' tu mets ton code
    End Select
    Voilà une des possibilité, sinon tu peux mettre des boutons dans ton formulaire pour passer en mode Ajout, etc ...

    C'est pour une chose de cette sorte que je trouvais ta méthode non conforme sur un autre post

    Starec

  3. #3
    Membre habitué Avatar de 4rocky4
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    528
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 528
    Points : 180
    Points
    180
    Par défaut
    L'aide ne marche pas sur cet ordinateur ...

    pouvez-bous m'éclairer un peu plus s'il vous plait ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Et avec cela

    Méthode OpenReport
    Voir aussiS'applique àExempleDétailsLa méthode OpenReport exécute l'action OuvrirEtat dans Visual Basic.

    expression.OpenReport(ReportName, View, FilterName, WhereCondition, WindowMode, OpenArgs)
    expression Obligatoire. Expression qui renvoie un objet DoCmd.

    ReportName Variant requis. Une expression chaîne qui est le nom valide d'un état dans la base de données en cours. Si vous exécutez un code Visual Basic contenant la méthode OpenReport dans une base de données bibliothèque, Microsoft Access recherche l'état sous ce nom, d'abord dans la base de données bibliothèque, puis dans la base de données en cours.

    View AcView facultatif. La vue à appliquer à l'état spécifié.

    AcView peut être une de ces constantes AcView.
    acViewDesign
    acViewNormal défaut Imprime l'état immédiatement.
    acViewPivotChart Non prise en charge.
    acViewPivotTable Non prise en charge.
    acViewPreview

    FilterName Variant facultatif. Une expression chaîne qui est le nom valide d'une requête dans la base de données en cours.

    WhereCondition Variant facultatif. Une expression chaîne qui est une clause WHERE SQL valide sans le mot WHERE.

    ModeFenêtre AcWindowMode facultatif. Le mode dans lequel s'ouvre le formulaire.

    AcWindowMode peut être une de ces constantes AcWindowMode.
    acDialog Les propriétés Modal et PopUp du formulaire sont réglées sur Yes.
    acHidden Le formulaire est masqué.
    acIcon Le formulaire s'ouvre sous forme réduite dans la barre des tâches Windows.
    acWindowNormal par défaut Le formulaire est dans le mode défini par ses propriétés

    OpenArgs Variant facultatif. Définit la propriété OpenArgs.

    Remarques
    Pour plus d'informations sur le mode de fonctionnement de l'action et de ses arguments, reportez-vous à la rubrique Action.

    L'argument WhereCondition peut comporter jusqu'à 32 768 caractères (contrairement à l'argument de l'action Where Condition de la fenêtre Macro, dont la longueur ne peut excéder 256 caractères).

    Vous pouvez laisser un argument facultatif vierge au milieu de la syntaxe, mais vous devez inclure la virgule de l'argument. Si vous laissez un ou plusieurs arguments de fin vierges, n'utilisez pas de virgule à la suite des arguments spécifiés.

    Exemple
    Cet exemple imprime un État des ventes à l'aide de la requête existante Filtre État.

    DoCmd.OpenReport "Sales Report", acViewNormal, "Report Filter"
    Starec

  5. #5
    Membre habitué Avatar de 4rocky4
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    528
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 528
    Points : 180
    Points
    180
    Par défaut
    Merci, je vais regarder tout ça !

  6. #6
    Membre habitué Avatar de 4rocky4
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    528
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 528
    Points : 180
    Points
    180
    Par défaut
    Citation Envoyé par Starec Voir le message
    Voici une idée possible (il y'en a d'autres).
    Puis-je en savoir un peu plus pour choisir celle qui me conviendrait le mieux ?

    Merci

  7. #7
    Membre habitué Avatar de 4rocky4
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    528
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 528
    Points : 180
    Points
    180
    Par défaut
    J'ai essayé de suivre ce qu'explique FreeAccess ici :

    Citation Envoyé par FreeAccess Voir le message
    Pour exemple:

    -Une barre d'outils personnalisée (perso) avec trois contrôles.
    Dans les propriétés de chaque contrôle, en face de "sur action"...:
    ==> 1er contrôle = Etat1
    ==> 2ème contrôle = Etat2
    ==> 3ème contrôle = Etat3

    -Dans un module, tu va créé le code suivant qui sera déclenché lors du clic sur un contrôle de ta barre d'outils..:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Function Etat1()
    DoCmd.OpenForm "Formulaire1", , , , , , "Etat1"
    End Function
     
    Function Etat2()
    DoCmd.OpenForm "Formulaire1", , , , , , "Etat2"
    End Function
     
    Function Etat3()
    DoCmd.OpenForm "Formulaire1", , , , , , "Etat3"
    End Function
    Puis sur l'événement "Sur ouverture" de ton formulaire "Formulaire1"...:
    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
    Private Sub Form_Open(Cancel As Integer)
    'En fonction de l'argument passé par OpenArgs.
    '...on ouvre le formulaire et on cache tel ou tel élément
    Select Case OpenArgs
        Case "Etat1"
            Me.texte1.Visible = True
            Me.texte2.Visible = False
            Me.texte3.Visible = False
        Case "Etat2"
            Me.texte1.Visible = False
            Me.texte2.Visible = True
            Me.texte3.Visible = False
        Case "Etat3"
            Me.texte1.Visible = False
            Me.texte2.Visible = False
            Me.texte3.Visible = True
    End Select
    End Sub


    Et voilà comment moi j'ai fait :

    J'ai créé un module avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Option Compare Database
     
    Function contact_ajout()
    DoCmd.OpenForm "Saisie d'un nouveau contact", , , , , , "Contact_ajout"
    End Function
     
    Function contact_modif()
    DoCmd.OpenForm "Saisie d'un nouveau contact", , , , , , "Contact_modif"
    End Function

    Sur un bouton de mon menu personnalisé j'ai mis SUR ACTION : contact_ajout
    Et sur un autre bouton SUR ACTION : contact_modif

    Ensuite sur l'ouverture du formulaire j'ai mis ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Form_Open(Cancel As Integer)
    Select Case Openargs
        Case "contact_ajout"
            Me.titre_contact.Visible = True
        Case "contact_modif"
            Me.titre_contact.Visible = False
    End Select
    End Sub
    J'ai décidé d'afficher ou pas le titre juste pour tester, je mettrais ensuite réellement ce que je désire.
    Je fait ca pour pouvoir ouvrir un formulaire en mode AJOUT et un autre en mode MODIFICATION.

    Lorsque j'exécute un des deux boutons du menu personnalisé, j'obtient :

    l'erreur d'exécution '2501'
    L'action Openform a été annulée.

    et en cliquant sur débogage, ca me renvoie dans le module :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Option Compare Database
     
    Function contact_ajout()
    DoCmd.OpenForm "Saisie d'un nouveau contact", , , , , , "Contact_ajout"
    End Function
     
    Function contact_modif()
    DoCmd.OpenForm "Saisie d'un nouveau contact", , , , , , "Contact_modif"
    End Function

    Où se situe mon erreur ?

  8. #8
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Bonjour,

    A première vue, ton code à l'air correct........

    Tu as également d'autres possibilités pour passer ton formulaire en mode AJOUT ou MODIFICATION......

    Ici, une petite explication.:
    http://www.developpez.net/forums/sho...d.php?t=184776

    Bonne lecture.......

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

Discussions similaires

  1. [CakePHP] Un formulaire pour plusieurs modèles
    Par Jeff39 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 09/03/2012, 16h24
  2. garder données formulaires pour plusieurs pages
    Par mikoumed dans le forum Langage
    Réponses: 2
    Dernier message: 09/01/2012, 14h43
  3. Formulaire pour plusieurs critères dans une requète
    Par toniodelavega dans le forum IHM
    Réponses: 4
    Dernier message: 06/08/2010, 11h19
  4. [MySQL] Formulaire pour plusieurs tables
    Par Dark Neggror dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 10/05/2009, 17h53
  5. Réponses: 1
    Dernier message: 20/06/2007, 03h18

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