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 :

Passage argument Formulaire->Etat


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 8
    Par défaut Passage argument Formulaire->Etat
    Bonjour à tous,
    je vous expose ce que je veux faire .

    Donc je pars d'un formulaire où j'ai simplement une listBox pour choisir le nom d'une commande, une fois validé, cela a pour effet de créer la requête en s'appuyant sur un modèle. Voici le code de se formulaire :
    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
    24
    25
    26
    27
    28
    29
    30
    Dim Db As DAO.Database
    Dim QryModele As DAO.QueryDef
    Dim strSQLModele As String
    Dim NomCmd As String
     
    NomCmd = lstCommande
     
    Set Db = CurrentDb
    Set QryModele = Db.QueryDefs("qryChxCommande_modele")
    strSQLModele = QryModele.SQL
    strSQLModele = Replace(strSQLModele, "[Sélectionnez une commande]", Chr(34) & Nz(lstCommande) & Chr(34))
     
    'Si la requête existe déjà alors
    If TesteExistenceRequete("qryChxCommande") Then
      'alors modifier le code de la requête
      Db.QueryDefs("qryChxCommande").SQL = strSQLModele
    'Sinon
    Else
      'Créer la nouvelle requête
      Db.CreateQueryDef "qryChxCommande", strSQLModele
    End If
     
    'Ferme le formulaire
    DoCmd.Close acForm, Me.Name
    'Ouvre le rapport
    stDocName = "RptCommande"
    DoCmd.OpenReport stDocName, acPreview, , , , NomCmd
     
     
    End Sub
    Ensuite, cela m'ouvre un état qui doit afficher la requête créé ci-dessus. J'aimerai sur cet état, afficher la valeur choisis dans le formulaire (ici, nom de la commande). J'ai pensé à faire passer l'info par arguments
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport stDocName, acPreview, , , , NomCmd
    Lors de l'ouverture de l'état, une procédure se déclenche, pour remplir une textBox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Report_Open(Cancel As Integer)
    If IsNull(Me.OpenArgs) Then
        'ne rien faire
    Else
        txtNameCmd = Me.OpenArgs
    End If
    End Sub
    Mon argument est bien visible sur Me.openArgs (mode debug), mais lors de l'affectation de txtNameCmd, il y a un message d'erreur :
    You can't assign a value to this object
    Pourtant ma textbox attend bien un string non?

    Je vous remercie de prendre la peine de me lire, et j'espère que vous pourriez m'éclairer sur ce message d'erreur, ou de al solution à entreprendre.

    Cdt

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Peux-tu essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.txtNameCmd = Me.OpenArgs
    SI txtNameCmd est bien un contrôle de l'état.

    PGZ

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 8
    Par défaut
    Bonjour PGZ,
    Tout d'abord merci de preter attention à mon post.

    J'ai effectué ce que tu m'as dit. Cela me donne la même erreur. Même lorsque je code, il connais bien la textbox txtNameCmd, de plus, quand je fais du pas à pas, mon arguments est bien renvoyés : Me.OpenArgs = "Nom de ma commande".

    Cdt

  4. #4
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Ce contrôle TextNameCmd est-il indépendant? Sinon quelle est sa source?

    Bonne journée,

    PGZ

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 8
    Par défaut
    Il a été créé par l'interface Access, sur l'état en mode design. Les propriétés ont été laissé par défaut, sauf bien sur le nom où je l'ai nommé txtNameCmd.

    Bonne journée à toi aussi

  6. #6
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    S'il n'est pas indépendant, tu ne pourras pas écrire dedans.

    Regardes dans ses propriétés, onglet données, ligne Source.

    PGZ

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

Discussions similaires

  1. [AC-2010] Passage d'un l'Argument "Formulaire" à une Public Sub
    Par symbabeauchat dans le forum VBA Access
    Réponses: 2
    Dernier message: 09/04/2013, 23h58
  2. Formulaire a etat
    Par Renardo dans le forum Access
    Réponses: 3
    Dernier message: 30/04/2006, 11h11
  3. Formulaire et Etat
    Par hindou dans le forum Access
    Réponses: 9
    Dernier message: 18/04/2006, 11h25
  4. Formulaire+requête = etat
    Par quidam66 dans le forum Access
    Réponses: 6
    Dernier message: 23/03/2006, 16h00
  5. Correspondance entre formulaire et etat
    Par Marmouz dans le forum Access
    Réponses: 1
    Dernier message: 27/09/2005, 17h26

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