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 :

Récupération champ table A par identification d'autres champs de tbl A par rapport à champ table B [AC-2016]


Sujet :

IHM

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2019
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2019
    Messages : 36
    Points : 14
    Points
    14
    Par défaut Récupération champ table A par identification d'autres champs de tbl A par rapport à champ table B
    Bonjour!

    Ca fait un moment que je galère sur un point et n'ai rien trouvé qui fonctionne sur les forums donc je fais appel à vous
    Je pense que c'est un truc tout bête à faire mais je suis débutante sur Access et VBA donc bon

    Je dois automatiser un processus de gestion d'appel d'offres notamment l'envoi des mails avec Access 2016.
    J'ai un formulaire principal frm_tbl_infosAvis basé sur une table tbl_infosAvis qui regroupe toutes les informations relatives aux avis selon leur numéro. Cette table sert à lier d'autres tables grâce au ID_avis qui est une clé primaire.
    Sur le formulaire j'ai d'autres champs qui viennent d'autres tables notamment tbl_chiffrage.
    Celle-ci contient l'ID_Avis lié à tbl_infosAvis, Destinataire_L liste déroulante qui prend noms et prénoms de tbl_contactsL, champ Destinataire_S liste déroulante qui prend les noms et prénoms de tbl_contactsS et d'autres champs pas utiles dans le problème.
    Les champs Destinataire_L et Destinataire_S se remplissent automatiquement correctement et contiennent donc le nom du destinataire.

    Je voudrais prendre ce nom, identifier la bonne ligne dans les tbl_contacts et y récupérer l'adresse mail pour l'intégrer à mon programme VBA qui envoie le mail par appui sur un bouton.

    Mon problème est juste la récupération dans les tbl_contacts de la bonne adresse mail correspondant au nom dans la tbl_chiffrage.

    J'ai essayé en faisant une requête, un sous formulaire, directement dans VBA, en liant les tables... mais aucune méthode n'a été concluante.
    J'ai aussi un autre pb c'est que je ne peux plus modifier les listes déroulantes dans tbl_chiffrage pour y ajouter les colonnes mails. Ca me dit que ce n'est pas modifiable car il y a des liaisons même quand tout est fermé et que j'ai retiré toutes les liaisons entre les tables

    Je pense que je me prends trop la tête pour un truc simple.

  2. #2
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Salut
    Difficile d'avoir une vision spatiale du SI lorsqu'il est exprimé sous forme littérale.
    Alors une bonne vieille capture d'écran de la fenêtre des relations avec les tbl concernées et pourquoi du form de saisie de vos données serait la bienvenue.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2019
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2019
    Messages : 36
    Points : 14
    Points
    14
    Par défaut
    Nom : screen form.PNG
Affichages : 273
Taille : 81,4 Ko

    Nom : screen relations.PNG
Affichages : 287
Taille : 77,4 Ko

    J'espère que c'est plus clair.
    Pour l'instant c'est sur la config avec la tentative de requête.

  4. #4
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Si votre combobox DestinataireS à pour contenu (Propriété Données)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT ID_client, Nom, Prenom, Mail
    FROM tbl_contactsclients
    pour récupérer la valeur Mail en vba, il faut passer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.ComboboxDestinataireS.Column(3)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    .column(0) = renvoit la valeur de la 1ère colonne
    .column(1) = renvoit la valeur de la 2ème colonne

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2019
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2019
    Messages : 36
    Points : 14
    Points
    14
    Par défaut
    J'ai adapté ça pour destinataireL.
    La ligne ci-dessous s'affiche en rouge, ID_contact_Laroche est surligné (en fait il surligne le premier élément après SELECT si j'enlève ID... et laisse Nom en premier il surligne Nom etc.) et un msgbox s'affiche disant : Erreur de compilation. Attendu : Case.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT ID_contact_Laroche, Nom, Prenom, Mail
    Voici la façon dont j'ai intégré votre code:

    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
    Private Sub btn_envoiChiffrage_Click()
    'Envoi mail chiffrage à Laroche
        Dim sujetMailLaroche As String
        Dim mailDestinataireLaroche As String
        Dim mailLaroche As String
     
        'Envoie mail uniquement lorsque N° Avis non vide
        If IsNull(N°_Avis) Then
            MsgBox "Le champ N°Avis est vide.", vbOKOnly, "Envoi en chiffrage"
        Else
            'Récupère adresse mail destinataire Laroche
            SELECT ID_contact_Laroche, Nom, Prénom, Mail
            From tbl_contactsLaroche
            mailDestinataireLaroche = Me.ComboboxDestinataireLaroche.Column(3)
     
            sujetMailLaroche = "DEMANDE DE CHIFFRAGE AVIS N°" & N°_Avis
            'mailDestinataireLaroche = "blbl"
            mailLaroche = "DEMANDE DE CHIFFRAGE AVIS N°" & N°_Avis & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "Date limite envoi offre: " & Date_limite_envoi_offre & Chr(13) & Chr(10) & "Date limite livraison outillage: " & Date_livraison_OT
     
            EnvoyerEmail sujetMailLaroche, mailDestinataireLaroche, mailLaroche
        End If
     
    'Envoi mail chiffrage client
     
    'Affecte la date du click sur le bonton à date envoi en chiffrage
    Date_envoi_en_chiffrage = Now()
     
    End Sub

  6. #6
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2019
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2019
    Messages : 36
    Points : 14
    Points
    14
    Par défaut
    Apparemment c'est parce que j'ai écrit du SQL directement sans le mettre dans une chaîne de texte.
    C'est corrigé maintenant mais maintenant j'ai une erreur de compilation "Sub ou fonction non définie" sur le from

    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
    Private Sub btn_envoiChiffrage_Click()
    'Envoi mail chiffrage à Laroche
        Dim sujetMailLaroche As String
        Dim mailDestinataireLaroche As String
        Dim mailLaroche As String
        Dim recupMailSQL As String
     
        'Envoie mail uniquement lorsque N° Avis non vide
        If IsNull(N°_Avis) Then
            MsgBox "Le champ N°Avis est vide.", vbOKOnly, "Envoi en chiffrage"
        Else
            'Récupère adresse mail destinataire Laroche
            recupMailSQL = "SELECT ID_contact_Laroche, Nom, Prénom, Mail"
            From tbl_contactsLaroche
            mailDestinataireLaroche = Me.ComboboxDestinataireLaroche.Column(3)
     
            sujetMailLaroche = "DEMANDE DE CHIFFRAGE AVIS N°" & N°_Avis
            'mailDestinataireLaroche = "blbl"
            mailLaroche = "DEMANDE DE CHIFFRAGE AVIS N°" & N°_Avis & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "Date limite envoi offre: " & Date_limite_envoi_offre & Chr(13) & Chr(10) & "Date limite livraison outillage: " & Date_livraison_OT
     
            EnvoyerEmail sujetMailLaroche, mailDestinataireLaroche, mailLaroche
        End If
     
    'Envoi mail chiffrage client
     
    'Affecte la date du click sur le bonton à date envoi en chiffrage
    Date_envoi_en_chiffrage = Now()
     
    End Sub

  7. #7
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2019
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2019
    Messages : 36
    Points : 14
    Points
    14
    Par défaut
    En fait non ça n'a aucun sens ce que j'ai fait là

  8. #8
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2019
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2019
    Messages : 36
    Points : 14
    Points
    14
    Par défaut
    Trouvé!!!
    J'ai effacé et refait ma table chiffrage vu que je ne pouvais pas modifier les champs pour une raison inconnue.
    Dans les listes déroulantes Destinataire_Laroche et Destinataire_S j'ai ajouté le champ Mail des tables contacts correspondantes puis il ne restait plus qu'à appeler la bonne colonne!

    Le SELECT ... FROM n'était pas nécessaire il suffisait de faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mailDestinataireLaroche = Destinataire_Laroche.Column(1)
    La variable mailDestinataireLaroche est inutile ducoup.

    hyperion13 merci beaucoup!


    Pour ceux que ça intéresse en tout ça donne :

    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
    Private Sub btn_envoiChiffrage_Click()
    'Envoi mail chiffrage à Laroche
        Dim sujetMailLaroche As String
        Dim mailLaroche As String
     
        If IsNull(N°_Avis) Then
            MsgBox "Le champ N°Avis est vide.", vbOKOnly, "Envoi en chiffrage"
        Else
            sujetMailLaroche = "DEMANDE DE CHIFFRAGE AVIS N°" & N°_Avis
            mailLaroche = "DEMANDE DE CHIFFRAGE AVIS N°" & N°_Avis & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "Date limite envoi offre: " & Date_limite_envoi_offre & Chr(13) & Chr(10) & "Date limite livraison outillage: " & Date_livraison_OT
     
            EnvoyerEmail sujetMailLaroche, Destinataire_Laroche.Column(1), mailLaroche
        End If
    'Envoi mail chiffrage client
    '...
     
    'Affecte la date du click sur le bonton à date envoi en chiffrage
    Date_envoi_en_chiffrage = Now()
     
    End Sub

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 10/05/2017, 23h20
  2. Réponses: 2
    Dernier message: 22/11/2016, 17h10
  3. Réponses: 5
    Dernier message: 22/07/2016, 00h31
  4. Récupération d'une colonne par rapport à une autre
    Par bakounine dans le forum Excel
    Réponses: 7
    Dernier message: 06/06/2012, 20h46
  5. Réponses: 3
    Dernier message: 23/03/2010, 17h55

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