{Access} récupérer valeur liste -> VBA

Résolu/Fermé
juliendangers Messages postés 226 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 28 octobre 2011 - 23 févr. 2010 à 11:00
 DamDam - 10 févr. 2015 à 17:18
Bonjour à tous,

Je vais vous exposer mon problème. J'ai créer une base de données avec 7 tables pour mon projet! Il est pratiquement terminé à part un malheureux point qui me donne du fil à retordre :s
Le problème concerne 3 tables liées. La table couleur(id_couleur, libellé) liée à la table affectation (id_affect, id_auto, id_couleur) ou id_couleur est une liste a choix multiple contenant l'ensemble des couleurs de la table couleur. Puis la table neuve(id_neuve, modele_neuve, puissance_neuve, energie_neuve) qui est liée a la table affectation par id_voiture!
Je vous explique mes choix :
Un modele (de voiture) peut etre de plusieurs couleurs mais pas de toute la gamme de couleur de la marque! On doit donc assigner à un modèle les couleurs qui lui correspondent, c'est pourquoi je dois récupérer les valeurs sélectionnées dans la liste de choix multiples...
Seulement avec access uniquement c'est impossible (ou alors expliquez moi je suis preneur)!
J'ai donc vu que je devais utiliser du code VBa. Mais je n'ai travaillé le VBa qu'avec excel et je ne sais trop comment m'y prendre avec access.
C'est pourquoi je fais appel à vos connaissances!
Je vous remercie d'avance ;) Bonne journée
A voir également:

22 réponses

juliendangers Messages postés 226 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 28 octobre 2011 43
25 févr. 2010 à 16:21
Bon j'ai encore modifié le code xD mais je n'arrive toujours pas à définir la valeur d'une liste déroulante grace à ma variable Suite

Dim T As DAO.TableDef
Dim F As DAO.Field
Dim P As DAO.Property
Dim test As Boolean
test = False
Set T = CurrentDb.TableDefs("T_NEUVE")
For Each T In CurrentDb.TableDefs
    If T.Name = "T_NEUVE" Then
        For Each F In T.Fields
            If F.Name = "ID_NEUVE" Then
                For Each P In F.Properties
                    If F.Attributes = ID Then
                        MsgBox F.Attributes
                        test = True
                        Exit For
                    End If
                Next
            End If
            If F.Name = "COULEUR_NEUVE" Then
                For Each P In F.Properties
                    If test = True Then
                        P.Properties.Append T.CreateProperty("RowSource", dbText, Suite)
                    End If
                Next
            End If
        Next
    End If
Next


la seule ligne qui ne marche pas c'est :
P.Properties.Append T.CreateProperty("RowSource", dbText, Suite)
RowSource n'est même pas affiché quand je liste les propriétés :s
mais je pense que ce n'est pas possible de modifier que une seule des listes... puisqu'elle seront toutes différentes... Donc je ne sais pas si ca se fait :s
0
juliendangers Messages postés 226 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 28 octobre 2011 43
25 févr. 2010 à 21:06
je voulais juste prévenir que j'ai abandonné l'idée qui est en fait impossible ><
que de temps perdu, mais que de connaissances acquises grace à toi. Voilà je te remercie pour ton aide!

PS : je te rassure une partie du code est encore appliqué mais la modification de la liste dans la table T_NEUVES est abandonnée ;)
0