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 :

Recuperation d'un champ pour selection et édition d'un Etat


Sujet :

IHM

  1. #1
    Membre régulier Avatar de totor92290
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 418
    Points : 102
    Points
    102
    Par défaut Recuperation d'un champ pour selection et édition d'un Etat
    Bonjour à Tous,
    J'ai in état "E0001_R0001_Sel_Vendor_For_GT72" que je veux envoyer par mail (ça, ça fonctionne!
    Par contre je ne veux envoyer uniquement l'état a chacun des fournisseurs. Pour l'instant il m'envoit in état avec tous les fournisseurs (ce sont des demandes de quotations, ça fait tache si tous les fournisseurs reçoivent toutes les demandes de quotations)
    Donc ce que je souhaiterais c'est que sur in doubleclick sur le nom du fournisseur, l'état soit filtré sur ce même nom et envoyé par mail.
    (le champ se trouve dans un sous-formulaire "F0005ter_GT/71_VendorList_Subform" qui lui même se trouve dans le formulaire "F0005_GT71_Vendor_Selection")

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    Private Sub Vendor_Name_DblClick(Cancel As Integer)
     
    'Update_Launch_Date
    DoCmd.SetWarnings False
    DoCmd.OpenQuery "R0001_Update_GT71_LaunchDate"
    DoCmd.SetWarnings True
     
     
    Dim stDocName As String
    Dim stLinkCriteria As String
     
    'stDocName = "NameOfTheDocument"
    stDocName = "E0001_R0001_Sel_Vendor_For_GT72"
    DoCmd.OpenReport stDocName, acViewReport, , "T0000_Vendor_List.Vendor_Name =" & Me.Forms![F0005_GT71_Vendor_Selection]![F0005ter_GT/71_VendorList_Subform]!Vendor_Name
    'DoCmd.OpenReport stDocName, acViewReport, , "T0000_Vendor_List.Vendor_Name ='" & Me.Vendor_Name & " ' "
    DoCmd.Close acReport, "E0001_R0001_Sel_Vendor_For_GT72"
     
    'SendEmail
            On Error GoTo Err_SendEmail_Click
     
                Dim strDocName1 As String
                Dim strEmail As String
                Dim strEmailCC As String
                Dim strEmailBCC As String
                Dim strMailSubject As String
                Dim strMsg As String
     
                strDocName1 = "E0001_R0001_Sel_Vendor_For_GT72"
            'send Report
                strEmail = Me.GenericEmailForQuotation
                strEmailCC = ""
                strEmailBCC = ""
     
                strMailSubject = "Request for quotation Ref.: " & Forms!F0005_GT71_Vendor_Selection!VendorSelection_GT71Ref
                strMsg = "Dear Vendor," & vbCrLf _
                & "You will find attached a request for quotaion Ref: " & Forms!F0005_GT71_Vendor_Selection!VendorSelection_GT71Ref & vbCrLf _
                & vbCrLf & _
                "Closing Date of this RFQ : " & Now() + 3 & vbCrLf & vbCrLf & vbCrLf & "Best Regards" & vbCrLf & vbCrLf & "xxxxxxxxxx"
     
            DoCmd.SendObject acSendReport, strDocName1, acFormatPDF, strEmail, strEmailCC, strEmailBCC, strMailSubject, strMsg
     
    'Update_Launch_Date
    DoCmd.SetWarnings False
    DoCmd.OpenQuery "R0001_Update_GT71_LaunchDate"
    DoCmd.SetWarnings True
     
     
    Exit_SendEmail_Click:
            Exit Sub
     
    Err_SendEmail_Click:
            MsgBox Err.Description
            Resume Exit_SendEmail_Click
     
    End Sub
    La ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport stDocName, acViewReport, , "T0000_Vendor_List.Vendor_Name =" & Me.Forms![F0005_GT71_Vendor_Selection]![F0005ter_GT/71_VendorList_Subform]!Vendor_Name
    M'ouvre in message d'erreur ou il me damnde le parameter du nom du fournisseur.
    La ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport stDocName, acViewReport, , "T0000_Vendor_List.Vendor_Name ='" & Me.Vendor_Name & " ' "
    Fonctionne mais l'état que j'envoi inclus tous les fournisseurs.

    HELP!!!

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Le filter a ce niveau se refere aux champs dans la source de donnees sans perfixe de table ou de requete.

    La solution est probablement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport stDocName, acViewReport, , "Vendor_Name ='" & Me.Vendor_Name & " ' "
    Note que pour les delimteurs de texte tu peux utiliser l'apostrophe (') ou le guillemet (") et personnelement je prefere le guillemet car il est moins utilise que l'appostrophe en francais et donc il y a moins de risques que ma chaine soit coupe en cours de route et que cela provoque une erreur de syntaxe.
    Quand on utilise un delimiteur dans une chaine il faut le doubler donc cela donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport stDocName, acViewReport, , "Vendor_Name =""" & Me.Vendor_Name & """"
    Donc """" est une chaine de caracteres qui ne contient que un guillemet.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre régulier Avatar de totor92290
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 418
    Points : 102
    Points
    102
    Par défaut
    Merci Marot_r
    J'ai repris ton code et adapté
    Le champ "T0000_Vendor_List.Vendor_Name " est le champ de l'Etat
    Le champ "Vendor_Name " est le champ du sous formulaire sur lequel je double click
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport stDocName, acViewReport, , "T0000_Vendor_List.Vendor_Name ='" & Me.Vendor_Name & " ' "
    Le code fonctionne, mais l'Etat en pièce jointe du mail me reprend tous les fournisseur et non pas seulement celui que j'ai sélectionné en double cliquant.
    Je ne sais pas si je suis clair

    Merci

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Ok donc il est probable que c'est l'attachement qui pose le probleme.

    Access au moment de l'envois reprend sans doute le rapport tel qu'il est originellement sans appliquer de filtre.

    Peux-tu poster le code qui fait la partie envois ?

    Aussi je te sugere de mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport stDocName, acViewReport, , "[T0000_Vendor_List.Vendor_Name] ='" & Me.Vendor_Name & " ' "
    Comme cela l'humain saura que [T0000_Vendor_List] n'est pas le prefixe de ta source.

    Et personnellement j'evite ce genre de chose en specifiant un nom par moi-meme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IccSuperNomQueJaime : T0000_Vendor_List.Vendor_Name
    On dit qu'on fait un "Alias" du nom du champ.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Membre régulier Avatar de totor92290
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 418
    Points : 102
    Points
    102
    Par défaut
    A marche pas!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport stDocName, acViewReport, , "[T0000_Vendor_List.Vendor_Name] =""" & Me.Vendor_Name & """"
    Il n'y a pas de message d'erreur mais l'Etat contient toujours l'intégralité des fournisseurs.
    Mais je vais clarifier:
    J'ai in formulaire qui enregistre les demandes de quotations
    J'ai in autre formulaire "F0005_GT71_Vendor_Selection"(source: table T0011bis_GT/71_PartNumber_Request_Recorded_Cumul) qui permet de selectionner les fournisseurs (source: table T0000_Vendor_List) a qui l'on envoie les demandes
    Donc dans ce formulaire in 1er sous formulaire pour la selection de la reference de la demande et le sous fomulaire (F0005ter_GT/71_VendorList_Subform) avec la liste des fournisseurs a séléctionner.
    La requete "R0001_Sel_Vendor_For_GT71" reprend les tables ci-dessus.
    L'Etat (E0001_R0001_Sel_Vendor_For_GT72) "tire" sur la requete "R0001_Sel_Vendor_For_GT71"
    C'est tordu mais si ça peut clarifier.

    Merci encore pour le support

  6. #6
    Membre régulier Avatar de totor92290
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 418
    Points : 102
    Points
    102
    Par défaut
    Marot_r
    Ci-dessous l'envoie du mail
    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
    33
    34
    35
    36
    'SendEmail
            On Error GoTo Err_SendEmail_Click
     
                Dim strDocName1 As String
                Dim strEmail As String
                Dim strEmailCC As String
                Dim strEmailBCC As String
                Dim strMailSubject As String
                Dim strMsg As String
     
                strDocName1 = "E0001_R0001_Sel_Vendor_For_GT72"
            'send Report
                strEmail = Me.GenericEmailForQuotation
                strEmailCC = ""
                strEmailBCC = ""
     
                strMailSubject = "Request for quotation Ref.: " & Forms!F0005_GT71_Vendor_Selection!VendorSelection_GT71Ref
                strMsg = "Dear Vendor," & vbCrLf _
                & "You will find attached a request for quotaion Ref: " & Forms!F0005_GT71_Vendor_Selection!VendorSelection_GT71Ref & vbCrLf _
                & vbCrLf & _
                "Closing Date of this RFQ : " & Now() + 3 & vbCrLf & vbCrLf & vbCrLf & "Best Regards" & vbCrLf & vbCrLf & "xxxxxxxxxx"
     
            DoCmd.SendObject acSendReport, strDocName1, acFormatPDF, strEmail, strEmailCC, strEmailBCC, strMailSubject, strMsg
     
    'Update_Launch_Date
    DoCmd.SetWarnings False
    DoCmd.OpenQuery "R0001_Update_GT71_LaunchDate"
    DoCmd.SetWarnings True
     
     
    Exit_SendEmail_Click:
            Exit Sub
     
    Err_SendEmail_Click:
            MsgBox Err.Description
            Resume Exit_SendEmail_Click

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Citation Envoyé par totor92290 Voir le message
    A marche pas!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport stDocName, acViewReport, , "[T0000_Vendor_List.Vendor_Name] =""" & Me.Vendor_Name & """"
    Il n'y a pas de message d'erreur mais l'Etat contient toujours l'intégralité des fournisseurs.
    Ce n'etait pas une solution c'etait une amelioration de la lisibilite du code.

    Je tache de regarder le probleme avec le courriel plus tard.
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  8. #8
    Membre régulier Avatar de totor92290
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 418
    Points : 102
    Points
    102
    Par défaut
    Merci Marot_r
    J'ai trouvé cette application qui fonctionne mais les liens sont de table à formulaire
    OpenFormSelSurDoubleClick.zip
    dans mon cas c'est une requete à formulaire c'est peut-être ça le problème???

    Encore merci
    Totor

  9. #9
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Non ton probleme vient de la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.SendObject acSendReport, strDocName1, acFormatPDF, strEmail, strEmailCC, strEmailBCC, strMailSubject, strMsg
    Le SendObject ne permet pas d'appliquer de filtre sur un rapport au moment de l'envoi.

    Il va falloir trouver un contournement et je ne l'ai jamais fait personnellement mais voici des strategies possibles a valider.
    1. Filtrer a la source. Mettre les criteres dans la requete qui sert a alimenter le rapport.
      Je ne suis pas sur que cela marche avec SendObject.
    2. Ouvrir le rapport filtre.
      En faire un fichier PDF sur disque.
      Joindre le PDF au courriel.
      Il est pobable qu'il faudra utiliser autre chose que SendObejct car il ne marche qu'avec des objets d'access.
      Ici la FAQ a ce propos :
      Comment envoyer un mail avec Outlook ?
      https://access.developpez.com/faq/?page=Outlook#outlook
      Si tu as Outlook, elle est vraiment bien. Pas la peine de reinventer la roue.


    Quelle version de Access utilises-tu ?

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  10. #10
    Membre régulier Avatar de totor92290
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 418
    Points : 102
    Points
    102
    Par défaut
    Bonsoir Marrot_r
    Access 2010
    Merci pour tes conseils

    Le souci c'est que sur le formulaire de sélection du fournisseur (avec la requete) il y a une case à cocher!
    Donc l'opérateur sélectionne le fournisseur en cochant la case et ensuite en double cliquant il y a envoi du mail.
    Comme tu le stipule "Filtrer a la source." est possible par rapport à ma requête... mais...
    J'aurais bien voulu faire sur click case à cocher envoyer le mail directement, mais comment faire pour simplement sélectionner le fournisseur coché (et non pas tous) sachant que la requête sélectionne toutes les lignes dont la case est cochée?
    Je ne sais pas si c'est très clair

    1 je sélectionne dans le formulaire "F0005_GT71_Vendor_Selection" la référence de la cotation
    2 je coche la case du fournisseur correspondant et cela envoi le mail correspondant
    3 je coche une nouvelle ligne pour un nouveau fournisseur, la requête est abondée de cette nouvelle ligne, mais par contre je souhaiterais uniquement envoyer le mail avec l'Etat de ce fournisseur sélectionner et non pas de tous (toutes les case cochées)

    J'espère que celà est plus clair ?
    Totor

    PS:Merci pour l'info sur SendObject !

  11. #11
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Apparement ce n'est pas par la qu'il faut passer. Desole pour la fausse piste.

    ici un post sur ce sujet :
    How to Output a dynamically filtered Access report to PDF
    https://codekabinett.com/rdumps.php?...docmd-outputto

    Ceci dit et pour info pour le filtrage dans la source il faut metre comme critere dans la colonne de la requite qui alimente le rapport.

    • Colonne : [T0000_Vendor_List.Vendor_Name].
    • Critere : [Forms]![NomTonForm]![Vendor_Name].


    ou
    • NomTonForm est le nom que tu as donne a ton formulaire.
    • Forms est la collection des formulaires ouverts actuellement et Access va le traduire en "Formulaires" pour toi.
    • ! siginfie "element de la collection".


    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. Bibtex ou biblatex : quelle champ pour l'édition originale?
    Par joseph.vidal-rosset dans le forum Bibliographies - Index - Glossaires
    Réponses: 6
    Dernier message: 27/05/2013, 23h39
  2. comment recuperer un champ pour un calcul
    Par gogo85 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 20/10/2011, 17h53
  3. Selection de champs pour pré-remplir un formulaire
    Par meehan dans le forum VBA Access
    Réponses: 5
    Dernier message: 13/10/2010, 07h24
  4. meme nom de champs pour un select
    Par damiensan dans le forum Requêtes
    Réponses: 2
    Dernier message: 16/06/2009, 10h49
  5. Problème avec un OR pour recuperation d'un champ
    Par bigltnt dans le forum Requêtes
    Réponses: 1
    Dernier message: 22/08/2007, 12h41

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