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

  1. #1
    Membre habitué
    Inscrit en
    Juillet 2010
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 230
    Points : 129
    Points
    129
    Par défaut Recherche multicritère et condition sur sélection d'enregistrement dans la liste (résultat de recherche)
    Bonjour,

    Mon formulaire composé d'une fonction de recherche multicritère (tuto caféine) a pour but de rechercher un enregistrement (dossier) afin d'imprimer un état. Le problème c'est qu'en fonction de la nature de ce dossier (sans incidence ou avec incidence financière), ce n'est pas le même état qui doit s'imprimer.

    Je post une capture de mon form pour mieux visualiser



    l'imprimante est le bouton pour imprimer. La recherche s'effectue sur le numero de dossier. Il y a une autre possibilité de filtre par date d'affectation.

    Quand je selectionne dans la liste un dossier et que j'imprime je n'ai aucun soucis, l'état qui s'imprime correspond bien au dossier sélectionné. Je voudrais juste pouvoir imprimer 2 états différents en fonction de la nature du dossier. Pour differencier 2 dossiers je souhaite utiliser mon champ : date2emecontrole. Je voudrais donc pouvoir imprimer l'état premier ctrl (sans incidence) si le champ date2emectrl est null sinon imprimer l'état 2eme ctrl

    Ce n'est pas un sous formulaire mais bien une liste. Je dois donc me baser sur cette liste.

    Ma question est de savoir comment appeler le champ date2emectrl (présent dans mon sql qui alimente cette liste.)

    Pour appeler le bon dossier lors de sa sélection j'utilise Me.lstResult. lstResult étant le nom de la liste.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DoCmd.OpenReport "Etat Premier controle", acViewPreview, , "T_controle.IDcontroledossier=" & Me.lstResults
    DoEvents
    DoCmd.RunCommand acCmdPrint
    DoCmd.Close acReport, "Etat Premier controle"
    Merci pour votre aide

  2. #2
    Membre actif

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 292
    Points
    292
    Billets dans le blog
    1
    Par défaut
    Bonsoir

    j'utiliserais la fonction Dlookup (monchamp, matable, moncritère)
    de cette manière tu peux tester ton champ "optionnel" en fcontion de l'id du controle

  3. #3
    Membre habitué
    Inscrit en
    Juillet 2010
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 230
    Points : 129
    Points
    129
    Par défaut
    Bonjour,

    Un grand MERCI !!! C'était exactement ce qu'il fallait. J'ai pourtant déja utilisé la fonction Dlookup mais apparement pas assez pour qu'il me vienne à l'idée de la tester dans ce cas précis !!

    Je post mon code global. Ca peut servir on sait jamais pour les débutants comme moi..

    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
    31
    32
    Private Sub printetat_Click()
     
     Dim TN As Variant
     
     TN = DLookup("[DateValidation2emeCtrl]", "[T_controle]", "[IDcontroledossier]=" & Me.lstResults)
     If IsNull(TN) Then
     On Error GoTo Err
    DoCmd.OpenReport "Etat Premier controle", acViewPreview, , "T_controle.IDcontroledossier=" & Me.lstResults
    DoCmd.RunCommand acCmdPrint
    DoCmd.Close acReport, "Etat Premier controle"
    Err:
        If Err.Number = 2501 Then 'Evite le message d'annulation de la commande CmdPrint
        Resume Exit_Err
        End If
    Exit_Err:
    DoCmd.Close acReport, "Etat Premier controle"
     Exit Sub
    Else
    On Error GoTo Err1
    DoCmd.OpenReport "Etat Second controle", acViewPreview, , "T_controle.IDcontroledossier=" & Me.lstResults
    DoCmd.RunCommand acCmdPrint
    DoCmd.Close acReport, "Etat Second controle"
    End If
     
    Err1:
        If Err.Number = 2501 Then 'Evite le message d'annulation de la commande CmdPrint
        Resume Exit_Err
        End If
    Exit_Err1:
    DoCmd.Close acReport, "Etat Second controle"
     Exit Sub
    End Sub
    Merci à toi et bonne continuation !

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

Discussions similaires

  1. [MySQL] Pagination sur pages de résultats de recherche multicritères
    Par genesia dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 01/07/2013, 15h06
  2. Réponses: 1
    Dernier message: 14/09/2007, 19h04
  3. Réponses: 1
    Dernier message: 02/07/2007, 16h57
  4. Réponses: 13
    Dernier message: 23/05/2007, 15h39
  5. Réponses: 3
    Dernier message: 03/05/2007, 12h06

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