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

VBA Access Discussion :

Chaine de caractère


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 144
    Par défaut Chaine de caractère
    Bonjour à tous,

    J'ai constitué sous accès une 1er table nommée : "Contact"
    Cette dernière est composée des champs "Num", "Nom" , "Prénom" et "Mail"

    Exemple :

    Table "Contact"

    Num :1
    Nom : DUBOIS
    Prénom : Pierre
    Mail : p.dubois@hotmail.fr

    Num :2
    Nom : MOREL
    Prénom : Rémi
    Mail : r.morel@hotmail.fr

    Une deuxième table nommée : "Projet" à été constituée
    Cette dernière associe un champ "Projet" à deux contacts renseignés précédemment par les champs "Nom" et "Prénom" de la base de données "Contact"

    Exemple :

    Table "Projet"

    Num : 1
    Projet : Projet A
    Contact_1 : Vide
    Contact_2 : Vide

    Sous mon formulaire de la table "Projet" je sélectionne dans deux menus déroulant nommés: "Contact_1" et "Contact_2" les personnes associées au projet.

    Je souhaiterais pouvoir retrouver le "Num" de la table "Contact" et renseigner les champs "contact_1" et "contact_2" de la table "Projet" afin d'alimenter dans le formulaire les champs de texte "mail_1" et "mail_2" ainsi créés.

    Exemple :

    Formulaire "Projet"

    Projet [saisie] : "Projet A"
    Contact_1 [menu déroulant] : Pierre DUBOIS
    Mail_1 [auto] : "p.dubois@hotmail.fr"
    Contact_2 [menu déroulant] : Rémi MOREL
    Mail_2 [auto] : "r.morel@hotmail.fr"

    Table "Projet"

    Num : 1
    Projet : Projet A
    Contact_1 : 1
    Contact_2 : 2

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 560
    Par défaut
    Bonjour,
    ce que tu demandes n'est pas trop compliqué normalement

    Quand tu crés ta liste déroulante, tu as l'assistant qui ce lance et te demande si tu veu taper les valeurs ou les extraire d'une table

    Quand tu dis qu'elles sont extraites d'une table, tu choisis les champs qui t'interesse....
    Sur l'écran suivant, il te demandera de cocher :"Colonne clé caché"
    Ainsi, dans ta liste déroulante, tu ne verras que les mails mais quand tu feras taListe.Value, tu auras dedans la valeur de la clé...
    C'est cette valeur que tu pourras mettre à jour dans ta table au lieu de mettre à jour avec les mails.... Evidemment, il faut que ton Num soit une clé dans ta table pour pouvoir faire ceci

    Voilà.....

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 144
    Par défaut VBA chaine de caractères
    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
    Private Sub Nom_1_AfterUpdate()
     
    Dim Tableau() As String
    Dim i As Integer
    Dim rec As Recordset
     
    Tableau = Split(Nom_1.SelText, " ")
     
    For i = 0 To UBound(Tableau)
     
    Debug.Print Tableau(i)
    Next i
     
    tst = "Select Num from Contact where Prénom LIKE '" + Tableau(0).text + "' AND Nom LIKE '" + Tableau(1).Text + "'
    Set rec = CurrentDb.OpenRecordset(tst)
     
    tst = "Update Contact Set Projet = '" & rec(0).Value & "' Where Num = " & Num.Value & ";"
    DoCmd.RunSQL (tst)
     
    rec.Close
     
    End Sub
    Voici mon encodage en revanche la qualification Tableau(0).Text ne fonctionne pas. Egalement dans un msgbox(Tableau(0).Text)

    Merci

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 560
    Par défaut
    Quel est le rapport avec ta question initiale ?
    As-tu essayé ce que je t'ai dit ?
    QUe veux-tu faire avec ton code ?

    Pour avoir des réponses claires, explique clairement ce que tu veux et informe tout le monde si les réposnes apportées t'aident ou non... ce sont les bases du forum

    Pour le moment, je ne comprends pas pourquoi tu me mets ce bout de code alors je ne peux pas te répondre ...

    Au cas où, si tu as essayé mon truc, tu retrouve le n° de ton contact directement dans taListe.Value
    Ainsi, tu pourras mettre à jour le champ contact dans ta table projet sans avoir à faire ton espèce de select pour récupérer un n° pour les nom qui se ressemble.... As-tu pensé à ce cas la par exemple ?
    Nom : Dupon
    Prenom : Jean

    et

    Nom : Dupond
    Prenom : Jeanne

    Quand tu feras ton seleck.... LIKE Jean et LIKE Dupon
    il te ramènera 2 enregistrements ==> tu feras comment après ....

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/12/2013, 16h40
  2. Crypter une chaine de caractères
    Par Yabo dans le forum Réseau
    Réponses: 18
    Dernier message: 19/11/2004, 23h04
  3. Réponses: 9
    Dernier message: 17/01/2003, 11h45
  4. Lire Une Chaine De Caractères
    Par Jonathan_Korvitch dans le forum C
    Réponses: 12
    Dernier message: 07/01/2003, 05h37
  5. Réponses: 2
    Dernier message: 06/12/2002, 07h50

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