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 :

[Access2003/VBA]Sous formulaires comment récupérer les valeurs ?


Sujet :

IHM

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Points : 165
    Points
    165
    Par défaut [Access2003/VBA]Sous formulaires comment récupérer les valeurs ?
    Bonjour,

    En fait j'aimerais récupérer les valeurs des différentes colonnes d'un sous formulaires (partie "détail") composés de champs textes, qui apparemment apparaissent à l'exécution.

    J'espère que je suis clair dans ma question ?

    Est ce que vous pourriez m'aider s'il vous plait ?

    Par avance merci.

    Marco.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Points : 165
    Points
    165
    Par défaut
    En fait, je veux récupérer les valeurs de tous les champs qui apapraissent dans les lignes détails d'un sous formulaire (sauf quelques uns) et les faire figurer ensuite dans un e-mail, que je vais composer par la suite (ça je sais faire, puisqu'il suffit simplement de concaténer les valeurs que je récupère au fure et à mesure).
    Mon problème est de savoir comment accéder aux valeurs du sous formulaire.

    Par avance merci.

    Marco.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 82
    Points : 54
    Points
    54
    Par défaut
    slt
    quand tu dis que tu veux les récupérer, tu veux dire quoi?
    les imprimer, les mettre ds un Etat???

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Points : 165
    Points
    165
    Par défaut
    En faire je veux les lire pour les mettre dans un e-mail.
    Mon problème c'est de savoir comment les lire.

  5. #5
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Salut à tous,
    cotmar, merci de faire un effort de recherche
    La réponse est dans la Faq.
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Points : 165
    Points
    165
    Par défaut
    Bonjour,

    Excuses moi Faw, mais j'ai sûrement mal cherché, mais je n'ai rien trouvé de tel. J'en reviens d'ailleurs encore.

    Par avance merci.

    Marco.

  7. #7
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Pô grave.
    ici
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Points : 165
    Points
    165
    Par défaut
    Bonjour et merci,

    Maintenant est ce que c'est possible de faire ça avec un for each sur un sous formulaire ?

    Par avance merci.

    Marco.

  9. #9
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Salut, oui bien sûr.

    Depuis le sous-formulaire= la faq= http://access.developpez.com/faq/?page=Ctrl#enum_ctl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim ctl As Control
       For Each ctl In Me.Controls
        If TypeOf ctl Is TextBox Then MsgBox ctl.Name
        Next ctl
    Depuis le formulaire parent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim ctl As Control
       For Each ctl In Me.MonSousForm.Form.Controls
        If TypeOf ctl Is TextBox Then MsgBox ctl.Name
        Next ctl
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Points : 165
    Points
    165
    Par défaut
    Bonjour,

    Merci de ta réponse Faw. Effectivement c'est exactement ce que je voulais faire en fait.

    Je viens d'essayer ce que tu 'as envoyé et voici ce que j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
     
    Dim ctl As Control
    Dim StrActions As String
        For Each ctl In Me.SousFormulaireActionCorrective.Form.Controls
            If TypeOf ctl Is TextBox Then
                StrActions = StrActions & ctl.Value & " "
            ElseIf TypeOf ctl Is Label Then
            End If
        Next ctl
    Il s'agit d'un sous formulaire comportant des champs textes disposé en colonnes (une ligne par enregistrement).

    Le problème c'est que apparemment il va directement sur le dernier enregistrement et qu'il semble ignorer les enregistrements qui précèdent.

    Est ce que tu saurais d'où celà peut venir ?

    Par avance merci.

    Marco.

  11. #11
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Salut,
    non il ne va pas su le dernier enregistrement mais il te renvoie les valeurs
    de colonnes de l'enregistrement de sous-form sélectionné (courant).
    Et c'est tout ce que tu obtiendras avec cette méthode.

    Pour boucler sur toutes les valeurs de colonnes de tous tes enregistrements
    il va te falloir te déplacer dans ton jeu d'enregistrements. La meilleurs façon
    serait un recordset avec boucle sur Field.

    à ta disposition la faq dao
    http://warin.developpez.com/access/dao/

    petite précision pour ceux que ça intéresserait dans un autre contexte.
    Si on ne veut que les contrôles de la section détail, on le précise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim ctl As Control
       For Each ctl In Me.MonSousForm.Form.Section("Détail").Controls
        If TypeOf ctl Is TextBox Then MsgBox ctl.Name
        Next ctl
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Points : 165
    Points
    165
    Par défaut Solution à la question posée
    Bonjour,

    Tout d'abord pour ta réponse et ta patience Faw, mais aussi Tojiji.

    Voici donc la compostion de mon e-mail au final :

    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
     
     
     
    Private Sub CmdDiffuser_Click()
    'Envoi d'un email automatique au destinataire :
    ' - L'utilisateur rempli le/les destinataires,
    ' - Un mail complètement formaté est généré.
    ' - > Revoir juste le text de l'email
    'On Error GoTo ErrHandler
    On Error Resume Next
     
        Dim StrMessage          As String
        Dim StrDateIncident     As String
        Dim StrNumSite          As String
        Dim StrVille            As String
        Dim StrRegion           As String
        Dim StrCompteRendu      As String
        Dim StrMesures          As String
        Dim StrActions          As String
        Dim LngCpt              As Long
        Dim ctl                 As Control
        Dim LngCpt1             As Long
        Dim rs                  As DAO.Recordset
     
        Me.DatIncident.SetFocus
        StrDateIncident = Me.DatIncident.Text
        Me.NumSite.SetFocus
        StrNumSite = Me.NumSite.Text
        Me.TxtVille.SetFocus
        StrVille = Me.TxtVille.Text
        Me.TxtRegion.SetFocus
        StrRegion = Me.TxtRegion.Text
        Me.CompteRendu.SetFocus
        StrCompteRendu = Me.CompteRendu.Text
        Me.MesuresSecurisationIntermédiaires.SetFocus
        StrMesures = Me.MesuresSecurisationIntermédiaires.Text
     
        StrMessage = "Bonjour," & vbCrLf & vbCrLf & _
                    "Un incident est survenu le : " & StrDateIncident & vbCrLf & vbCrLf & _
                    "Sur le site " & StrNumSite & " de : " & StrVille & " dans la région : " & StrRegion & vbCrLf & vbCrLf & _
                    "Dont le descriptif suit : " & vbCrLf & vbTab & StrCompteRendu & vbCrLf & vbCrLf & _
                    "Les mesures suivantes ont été mises en oeuvre : " & vbCrLf & vbTab & StrMesures & vbCrLf & vbCrLf & _
                    "" & vbCrLf
     
     
        StrActions = ""
        Set rs = Me.SousFormulaireActionCorrective.Form.Recordset
        If Not rs.EOF Then
            StrActions = StrActions & "Dont le détail suit : " & vbCrLf & vbCrLf
        End If
        Do While rs.EOF = False
            StrActions = StrActions & vbTab & "-" & vbTab & vbTab & rs.Fields(1).Value & vbTab & vbTab & " a réalisé " & rs.Fields(2).Value & vbTab & " le " & rs.Fields(3).Value & "," & vbCrLf   '& " " & rs.Fields(4).Value '& " " & rs.Fields(5).Value & " "
            rs.MoveNext
        Loop
     
        StrMessage = StrMessage & StrActions & vbCrLf & vbCrLf & "Cordialement."
     
        If Not ModOutlook.FctSendEmail("", CstAppName & " - Incident sur le réseau", StrMessage) Then
            Exit Sub
        Else
            Call ModLogFile.SubAddAction("Diffusion de l'incident par email.")
        End If
     
    ExitHandler:
        Exit Sub
     
    ErrHandler:
    'Resume
        If Err.Number <> 2110 Then
            MsgBox Err.Description, vbExclamation, CstAppName
        End If
        Resume ExitHandler
     
    End Sub

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

Discussions similaires

  1. [FAQ] Les formulaires (partie 1) Comment récupérer les valeurs d'un select multiple ?
    Par Auteur dans le forum Contributions JavaScript / AJAX
    Réponses: 9
    Dernier message: 17/11/2013, 11h26
  2. [FAQ] Les formulaires (partie 1) Comment récupérer la valeur d'un select ?
    Par Auteur dans le forum Contributions JavaScript / AJAX
    Réponses: 5
    Dernier message: 16/11/2013, 19h34
  3. [PHP 5.2] [formulaire] comment récupérer les valeur d'un checkbox
    Par pierrot10 dans le forum Langage
    Réponses: 2
    Dernier message: 12/10/2010, 10h50
  4. Réponses: 3
    Dernier message: 25/04/2008, 12h06
  5. Formulaire & Confirm : Comment récupérer les valeurs en javascript ?
    Par dark_vidor dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 24/11/2006, 18h21

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