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 :

Calendrier faire " pop " un message correspondant à un enregistrement [AC-2003]


Sujet :

IHM

  1. #21
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 651
    Points : 34 362
    Points
    34 362
    Par défaut
    regarde, en faisant ton code ligne à ligne,
    j'essaie de voir le nom du control actif, et j'obtiens ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ?me.ActiveControl.name
    chkResponsable
    en changeant le code comme ceci, on lit le texte de la "1ere case"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Private Function ReturnInfo()
    Dim pop As String
     
    'pop = DLookup("[DateDepart]& ' ' & [Responsable]", "Doc")
    'pop = DLookup("[DateDepart]& ' ' & [Responsable]", "Doc", "DateDepart=" & CDbl(Screen.ActiveControl.Value))
    'pop = Nz(DLookup("[DateDepart]", "Doc", "Cdbl(DateDepart)=" & CDbl(Nz(Screen.ActiveControl.Value, 2))), 2)
    MsgBox Nz(Me.J1.Caption, 2)
     
    'MsgBox "Tâche(s) du jour  " & pop
     
     
    End Function
    on utilisera une variable pour spécifier si J1, J2... est utilisé

    le code final pourrait être ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Function ReturnInfo()
    Dim pop As String
     
    MsgBox Nz(Me.Controls("J" & variableglobal).Caption, 2)  
     
    End Function

    reste maintenant à récupérer les autres éléments ;
    mois et année

  2. #22
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 65
    Points : 17
    Points
    17
    Par défaut
    okai, donc j'ai refais complètement mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Function ReturnInfo()
    Dim DateDebutSemaine As Date
    Dim i As Integer
    'On calcule le numéro du premier jour de la semaine selon la date selectionnée grâce aux listes
    DateDebutSemaine = DateAdd("d", -IIf(Weekday(DateSerial(Me.Liste_Annee, Me.Liste_Mois, Me.Liste_Jour)) - 1 = 0, 7, Weekday(DateSerial(Me.Liste_Annee, Me.Liste_Mois, Me.Liste_Jour)) - 1) + 1, DateSerial(Me.Liste_Annee, Me.Liste_Mois, Me.Liste_Jour))
    'On récupère le numéro de la case
    i = ObjectNum(elem_selected)
    'On calcule la date de la case selectionnée et on la renvoie
    ReturnInfo = DateAdd("d", i - 1, DateDebutSemaine)
    End Function
    et quand je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'à mettre dans la Function SelectDay
    MsgBox ReturnInfo
    c'est impeccable j'ai la bonne date

    Maintenant, je me demande comment faire mon DLookup()
    fiou je crois que sa vient bon

  3. #23
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 651
    Points : 34 362
    Points
    34 362
    Par défaut
    Désormais, si ReturnInfo contient ta date,
    tu repasses par ce qu'on a évoqué juste avant, à savoir, le format + les # avant et après

  4. #24
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 65
    Points : 17
    Points
    17
    Par défaut
    bon bon bon...

    je n'y arrive pas avec ce DLookup

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = DLookup("[DateDepart]", "Doc", "ReturnInfo =#" & Format(Nz(JE SAIS PAS QUOI METTRE, 2), "MM/DD/YYYY") & "#")
    même le ReturnInfo en critère je ne suis pas sur

    pourrais-tu encore m'aider un peu?

  5. #25
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 651
    Points : 34 362
    Points
    34 362
    Par défaut
    ne te disperse pas et reste sur ce qu'on a déjà fait ensemble :
    ton ReturnInfo te renvoie la date c'est bien cela ?
    la table Doc contient quels champs ?

    je n'ai plus accès à ta base, lien mort

  6. #26
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 65
    Points : 17
    Points
    17
    Par défaut
    re,

    j'ai remis la bdd

    donc dans ReturnInfo il y a bien la bonne date.
    sinon dans la table Doc il y a la toute ma bdd

  7. #27
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 651
    Points : 34 362
    Points
    34 362
    Par défaut
    ok,
    et le champ sur lequel tu veux filtrer s'appelle comment ?
    on arriverait à quelque chose comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     DLookup("[DateDepart]", "Doc", " TonChampAFiltrer=#" & Format(Nz(ReturnInfo, 2), "MM/DD/YYYY") & "#")

  8. #28
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 65
    Points : 17
    Points
    17
    Par défaut
    le champ que je veux filtrer est DateDepart

    Dans ReturnInfo, j'ai la date du formulaire (celle sélectionnée) et dans ma base de donnée dans le champ DateDepart il y a plein de date moi je voudrais que cela m'affiche les enregistrements qui sont égale a mon ReturnInfo.

    j'ai remis la base de donnée
    http://www.mediafire.com/?sharekey=5...4e75f6e8ebb871

  9. #29
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 651
    Points : 34 362
    Points
    34 362
    Par défaut
    Attention Dlookup() ne retourne qu'un seul enregistrement, pas plusieurs.

    Si tu veux avoir plusieurs enregistrements il faudra changer de méthode.

    Par rapport à ton DateDepart,
    on aurait donc une requête du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSQL = "SELECT * FROM Doc WHERE DateDepart = #" & Format(ReturnInfo,"MM/DD/YYYY") & "#"

  10. #30
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 65
    Points : 17
    Points
    17
    Par défaut
    je viens de tester et y a un truc bizarre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSQL = "SELECT * FROM Doc WHERE DateDepart = #" & Format(ReturnInfo, "DD/MM/YYYY") & "#"
    quand j'affiche strSQL je vois dans la messagebox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM Doc WHERE DateDepart = #MA DATE SELECTIONNEE#
    si je veux afficher ma date + le nom d'un responsable cela donne ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSQL = "SELECT DateDepart,Responsable FROM Doc WHERE DateDepart = #" & Format(ReturnInfo, "DD/MM/YYYY") & "#"

  11. #31
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 651
    Points : 34 362
    Points
    34 362
    Par défaut
    attention au format

  12. #32
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 65
    Points : 17
    Points
    17
    Par défaut
    le format de la date?

    parce que ça me fait le même truc que sa soit en DD/MM/YYYY ou MM/DD/YYYY

    sa inverse juste les jours et les mois mais j'ai SELECT * FROM Doc WHERE DateDepart = #MA Date (soit dd/mm/yyyy ou mm/dd/yyyy)# qui s'affiche avant de me donner la date

  13. #33
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 651
    Points : 34 362
    Points
    34 362
    Par défaut
    oui,
    et donc maintenant il faut que tu affiches le résultat ou 'lutilises dans un recordset

  14. #34
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 65
    Points : 17
    Points
    17
    Par défaut
    je viens d'essayer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim db As DAO.Database
    Dim rstDatabase As DAO.Recordset 
     
    strSQL = "SELECT DateDepart, Responsable FROM Doc WHERE DateDepart = #" & Format(ReturnInfo, "DD/MM/YYYY") & "#"
     
    Set db = CurrentDb
    Set rstDatabase = db.OpenRecordset(strSQL)
     
    MsgBox "Tâche(s) du jour  " & rstDatabase
    j'ai une erreur d'incompatibilité de type donc je suppose que je me démerde comme un manchot

    et si je fait un MsgBox "Tâche(s) du jour " & strSQL y a le bug de l'affichage que j'ai cité au-dessus

  15. #35
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 651
    Points : 34 362
    Points
    34 362
    Par défaut
    pas de nom d'oiseaux veux-tu

    essaie avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox "Tâche(s) du jour  " & rstDatabase.Fields("DateDepart").value & ":" & rstDatabase.Fields("Responsable").value

  16. #36
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 65
    Points : 17
    Points
    17
    Par défaut
    Super sa fonctionne merci a toi mais je vais te poser 2 dernières questions

    si il n'y a pas d'enregistrement qui correspond dans ma base de données peut-on afficher "rien a faire" ?

    et si il y a 3 enregistrement dans ma base de donnée comment faire pour afficher les 3 enregistrements?

  17. #37
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 651
    Points : 34 362
    Points
    34 362
    Par défaut
    pour la première question :
    tester avant RS.EOF
    pour la seconde :
    tu veux les afficher sous quelle forme ? à quel endroit ?

  18. #38
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 65
    Points : 17
    Points
    17
    Par défaut
    j'aurais bien voulu avec un msgbox mais si c'est pas possible je le ferrais avec une zone de liste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Me.InfoCal.RowSource = strSQL
     
    Me.InfoCal.Requery
    sinon le rs.EOF je connais pas non plus si tu pouvais m'aider aussi parceque je regarde l'info de microsoft mais bon... faut faire un mixe avec rs.EOF,RS.BOF ?

  19. #39
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 651
    Points : 34 362
    Points
    34 362
    Par défaut
    l'aide en ligne pour EOF et BOF est suffisante pour manipuler les recordset

  20. #40
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 031
    Points : 24 587
    Points
    24 587
    Par défaut
    Bonjour,

    Dans un msgbox on peut afficher de nombreuse lignes de texte.

    Il faut donc créer une liste de ligne à partir de ton recordset.

    en gros on parcours le recordset, on concatene le resultat et un saut de ligne, et enfin on l'affiche dans la msgbox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    dim Maliste as string
     
    while not rst.eof
         Maliste = Maliste & rst.fields("Monchamp") & vbcrlf
         rst.movenext
    wend
     
    msgbox Maliste,vbokonly, "un titre"
    Il faut t'inspirer du code et non faire un copier coller.

    Cordialement,

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

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