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

IHM Discussion :

Commande "DoCmd.OpenReport" sous VBA access


Sujet :

IHM

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 232
    Points : 90
    Points
    90
    Par défaut Commande "DoCmd.OpenReport" sous VBA access
    Bonjour,
    J'ai le code suivant pour ouvrir un Form

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Numéro_de_fex_Click()
        Dim stDocName As String
        Dim stLinkCriteria As String
        stDocName = "Affiche fex"
        stLinkCriteria = "[Numéro de fex]=" & [Numéro de fex]
        DoCmd.OpenForm stDocName, , , stLinkCriteria
    End Sub
    Je voudrais faire pareil mais avec un état et la commande Docmd.OpenReport.
    Cela est-il possible car je n'ai pas trouvé d'aide avec exemple dans l'aide VBA Access.

    Merci à tous pour votre aide
    nomade

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent 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 : 70
    Localisation : France

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

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

    Ce sont les mêmes arguments, qui dépendent de ta version d'Access. F1 sur OpenReport pour ouvrir l'aide.
    Acces 2003 :
    expression.OpenReport(ReportName, View, FilterName, WhereCondition, WindowMode, OpenArgs)
    Bon courage,

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 232
    Points : 90
    Points
    90
    Par défaut
    Bonjour à tous et merci pour la réponse, mais cela ne marche pas.
    l'état s'ouvre mais avec toutes les données, et non pas avec celle triées selon le critère.
    voici mon code, quelqu'un pourrait il le corriger?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Texte26_Click()
    Dim ReportName As String
    Dim stLinkCriteria As String
    ReportName = "Maintenance Equip"
    stLinkCriteria = "[EQ]=" & "'" & Me![EQ] & "'"
    DoCmd.OpenReport "Maintenance Equip", acViewPreview, stLinkCriteria
    End Sub
    Merci par avance

    Ps: je n'ai qu'une notion trés, trés limité de VB

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2007
    Messages : 108
    Points : 54
    Points
    54
    Par défaut
    voila le code que moi j'utilise. Il fonctionne tres bien essaye

    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
    Private Sub CmdImprimer_Click()
     
    'imprimer l'état correspondant au formulaire en appercu
     
     On Error GoTo Err_CmdImprimer_Click
     
        Dim stDocName As String
     
        stDocName = "Recette" ' met le nom de ton etat
        DoCmd.OpenReport "Recette", acPreview, , "(idversion)= " & Me.idversion.Value
     
    Exit_CmdImprimer_Click:
        Exit Sub
     
    Err_CmdImprimer_Click:
        MsgBox Err.Description
        Resume Exit_CmdImprimer_Click
    Attention il faut que (comme dans cet exemple) le idversion soit sur ton formulaire et dans ton état. Sinon le filtre ne marchera pas.

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 232
    Points : 90
    Points
    90
    Par défaut
    Bonsoir,
    J'obtiens le même résultat qu'avec mon code, à savoir l'état s'ouvre, mais affiche tous les enregistrements et ne filtre pas sur le critère "idversion".
    Le fait que la table pour le form et pour l'etat soit la même a t il son importance?
    Merci pour la réponse

  6. #6
    Membre habitué
    Inscrit en
    Mai 2007
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 189
    Points : 151
    Points
    151
    Par défaut
    Bonsoir,

    Ton erreur réside dans le manquement d'un argument pour la méthode DoCmd::OpenReport().

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Texte26_Click()
      Dim strReportName As String
      Dim stLinkCriteria As String
      strReportName = "Maintenance Equip"
      stLinkCriteria = "[EQ]=" & "'" & Me![EQ] & "'"
    ' Erreur:
    ' DoCmd.OpenReport ReportName, acViewPreview, stLinkCriteria  DoCmd.OpenReport strReportName , acViewPreview, stLinkCriteria
    '
    ' Bon Code ici-bas:
      DoCmd.OpenReport strReportName, acViewPreview, "", stLinkCriteria
    '
    End Sub
    Ca devrait marcher.

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 232
    Points : 90
    Points
    90
    Par défaut
    Merci à jacou
    ça fonctionne impec
    A+

  8. #8
    Membre expérimenté
    Homme Profil pro
    Indépendant développeur et formateur
    Inscrit en
    Octobre 2007
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant développeur et formateur
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 036
    Points : 1 598
    Points
    1 598
    Par défaut
    perso j'écrirais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Texte26_Click()
    DoCmd.OpenReport "Maintenance Equip", acViewPreview, ,"EQ=forms!le_nomd_formulaire!EQ"
    End Sub
    alternative
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Texte26_Click()
    DoCmd.OpenReport "Maintenance Equip", acViewPreview, ,"EQ=" & ME!EQ.value
    End Sub
    Vous allez me dire que je simplifie tout et qu'il n'y a pas des gestion d'erreur, mais si la gestion d'erreur conste seulement à sortir du prog, je vois pas l'interêt
    Quand à mettre un texte dans une variable pour le passer en argument, dites moi si des essais on fait la preuve d'une meilleure rapidité...?!?
    -------------------Simplifi----------comme si tout était simple--------
    -------------------Simplifi----------comme si tout était simple--------

  9. #9
    Nouveau membre du Club
    Inscrit en
    Mai 2008
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 40
    Points : 35
    Points
    35
    Par défaut Etat avec critère
    Bonjour,
    J’ai un problème similaire, J’ai crée une BD (Ordonnace(2).mdb) avec 2 tables (un enregistrement de la table 1 correspond à plusieurs enregistrement de la table 2) puis un formulaire et un sous-formulaire. Je voudrais créer un état qui m’affiche un enregistrement du sous-fourmulaire en reprenant des données du formulaire. L’état m’affiche tous les enregistrements. Que dois je faire ?
    J’ai appliqué votre solution : le critère étant le CodeMalade, mais sans résultat. J’ai un message qui me demande de préciser le critère ! Y a t il une solution ?
    Merci

  10. #10
    Nouveau membre du Club
    Inscrit en
    Mai 2008
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 40
    Points : 35
    Points
    35
    Par défaut Etat avec critère
    Bonjour,
    Merci les amis c’est notamment en posant des questions aux autres qu’on réfléchis encore plus. J’ai résolu le problème, avec l’aide des forums.
    La procédure lorsque le critère est un texte = DoCmd.OpenReport "Nom de l’état", acPreview, , "[Critère]=" & "'" & Me![Critère] & "'"
    La procédure lorsque le critère est un numéro = DoCmd.OpenReport "Nom de l’état", acPreview, , "[Critère]=" Me![Critère]
    Le [Critère] entre guillemets est celui figurant sur l'état, le [Critère] hors des guillemets désigne celui figurant sur le formulaire. S’il s’agit d’un sous-formulaire il faut ajouter le nom du SF avec un point d’exclamation exemple : Me![Malades sous-formulaire]![Critère]
    Salutations !

  11. #11
    Membre habitué Avatar de Gabrieel
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2004
    Messages : 186
    Points : 172
    Points
    172
    Par défaut
    Citation Envoyé par Hydatid Voir le message
    Bonjour,
    Merci les amis c’est notamment en posant des questions aux autres qu’on réfléchis encore plus. J’ai résolu le problème, avec l’aide des forums.
    La procédure lorsque le critère est un texte = DoCmd.OpenReport "Nom de l’état", acPreview, , "[Critère]=" & "'" & Me![Critère] & "'"
    La procédure lorsque le critère est un numéro = DoCmd.OpenReport "Nom de l’état", acPreview, , "[Critère]=" Me![Critère]
    Le [Critère] entre guillemets est celui figurant sur l'état, le [Critère] hors des guillemets désigne celui figurant sur le formulaire. S’il s’agit d’un sous-formulaire il faut ajouter le nom du SF avec un point d’exclamation exemple : Me![Malades sous-formulaire]![Critère]
    Salutations !
    Merci grace a ton intervention, je comprend désormais très bien la différence!

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

Discussions similaires

  1. probleme avec la commande execute sous vba access 2003
    Par williamkwr dans le forum VBA Access
    Réponses: 1
    Dernier message: 18/07/2009, 20h05
  2. accéder un champ de la requette sous vba access
    Par mahboub dans le forum Langage SQL
    Réponses: 1
    Dernier message: 24/04/2007, 22h21
  3. Réponses: 12
    Dernier message: 10/06/2006, 19h07
  4. [Access 2003/VBA]Zorder sous VBA-Access ?
    Par cotmar dans le forum Access
    Réponses: 2
    Dernier message: 05/06/2006, 13h55

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