Afficher les tables d'une base de données dans la liste déroulante d'un formulai

Résolu
cs_CCelia Messages postés 15 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 24 avril 2008 - 22 avril 2008 à 15:54
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 23 avril 2008 à 16:00
bonjour a tous,
est ce que quelqu'un c'est comment faire pour afficher dans la liste déroulante d'un formulaire, la liste des tables de la base de données su laquelle on travaille.
J'ai réussi en entrant le nom des tables comme liste de valeurs mais j'ai ensuite une requête à éxécuter à partir de ces tables et sa ne fontionne pas car je pense qu'il ne reconnait que les valeurs que j'ai tapé comme des tables. 
merci.

22 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
23 avril 2008 à 13:31
Private Sub Form_Load()
Dim sBuffer As String
Dim oTable As TableDef
For Each oTable In CurrentDb.TableDefs
If LenB(sBuffer) Then
sBuffer = sBuffer & ";"
End If
sBuffer = sBuffer & oTable.Name
Next oTable
Modifiable0.RowSourceType = "Value List"
Modifiable0.RowSource = sBuffer
End Sub
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
23 avril 2008 à 11:45
dans la fenetre VBA (celle où tu saisi le code)
Outils > References > Microsoft DAO 3.6 Object Library

tu pourras ainsi jouer avec CurrentDB, TableDef et TableDefs....

et utiliser le code suivant :

Private Sub Form_Load()
Dim oTable As TableDef
Modifiable4.RowSourceType = "Value List"
For Each oTable In CurrentDb.TableDefs
Modifiable4.AddItem oTable.Name
Next oTable
End Sub
1
cs_CCelia Messages postés 15 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 24 avril 2008 1
23 avril 2008 à 12:00
la référence Microsoft DAO 3.6 Object Library est bien activé, mais il me marque toujours le même pb : membre de méthode ou données introuvable.

que dois je faire?
1
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
23 avril 2008 à 12:05
c'est coché, et il te dit ça....

sur quelle ligne, quell mot ?
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
23 avril 2008 à 10:37
ok, donc certainement DAO...

Dim oTable as TableDef
For Each oTable in CurrentDB.TableDefs
Combo1.AddItem oTable.Name
Next oTable
0
cs_CCelia Messages postés 15 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 24 avril 2008 1
23 avril 2008 à 10:48
et cette procédure événementielle je la mets sur quel événement pour que le résultat s'affiche? 
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
23 avril 2008 à 10:53
cette procédure ?
tu la mets ou tu veux ^^

dans la procédure évènementielle de ton choix...
sur un click, au chargement (Form_Load), ...
0
cs_CCelia Messages postés 15 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 24 avril 2008 1
23 avril 2008 à 11:14
la procédure événementielle doit-elle se faire sur générateur de macro, ou générateur de code?


Si elle est sur générateur de macro quelle action dois-je choisir dans la macro?


MERCI d'avance pour les réponses
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
23 avril 2008 à 11:18
Arretes de valider toutes les réponses, ca marque ton probleme comme résolu...
ce qui fait que personne d'autre (a priori) ne viendra t'aider, si eventuellement ton probleme persiste.

de plus, valider toutes les reponses reviens a n'en valider aucune, on ne voit pas, au premier coup d'oeil la (ou les) réponse qui t'ont aidé a solutionner ton probleme
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
23 avril 2008 à 11:18
Générateur de Code...
quelle action ? je te l'ai dit : Form_Load

Private Sub Form_Load()
Dim oTable as TableDef
For Each oTable in CurrentDB.TableDefs
Combo1.AddItem oTable.Name
Next oTable
End Sub
0
cs_CCelia Messages postés 15 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 24 avril 2008 1
23 avril 2008 à 11:35
dsl je en connais pas trople fonctionnement des réponses à valider c'est la première fois que j'utilise ce site.

pour le pb de vb

voila ce que j'ai mis dans ma liste modifiable propriétés>événement >sur clic (car je netrouve pas sur clic au chargement)

Option Compare Database
Option Explicit
Private Sub Modifiable4_Click()
Dim oTable As TableDef
    For Each oTable In CurrentDb.TableDefs
        Modifiable4.AddItem oTable.Name
    Next oTable
End Sub

mais il me dit membre de méthode ou données introuvable.
dsl je ne fais pas de la vb depuis très longtemps alior j'ai un peu d mal
0
cs_CCelia Messages postés 15 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 24 avril 2008 1
23 avril 2008 à 13:06
Private Sub Form_Load()  il me surligne en jaune toute cette ligne
Dim oTable As TableDef
    Modifiable4.RowSourceType = "Value List"
    For Each oTable In CurrentDb.TableDefs
        Modifiable4.AddItem oTable.Name et sur cette ligne me surligne en gris AddItem
    Next oTable
End Sub
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
23 avril 2008 à 13:18
avec quelle version d'Access joues tu ?

la ligne grisée, ca vient du fait qu'il ne connait pas la méthode AddItem de ton objet.
j'ai testé avec succès sous Access 2003
0
cs_CCelia Messages postés 15 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 24 avril 2008 1
23 avril 2008 à 13:23
je suis sous access97.



http://www.commentcamarche.net/forum/affich-4125284-access-2000-liste-des-tables-d-une-bdd

regarde sur ce lien on diré kil y a la meme erreur que moi mais unE des personnes dit d'utiliser une autre méthode peut-être sais tu quelle autre méthode utilisée?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
23 avril 2008 à 13:34
j'ai ajouté la solution sur le site dont tu as fournit le lien
0
cs_CCelia Messages postés 15 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 24 avril 2008 1
23 avril 2008 à 14:21
merci pour ton aide tout fonctionne parfaitement.
0
cs_CCelia Messages postés 15 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 24 avril 2008 1
23 avril 2008 à 14:54
Encore une petite chose est ce qu'il est possibLE d'ajouter une instruction pour que les tables msys ne s'affiche pas?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
23 avril 2008 à 15:04
oui, il s'agit simplement de tester les quatres premières lettres de oTable.Name ...

For Each oTable In CurrentDb.TableDefs
If Left$(oTable.Name, 4) <> "MSys" Then
If LenB(sBuffer) Then
sBuffer = sBuffer & ";"
End If
sBuffer = sBuffer & oTable.Name
End If
Next oTable
0
cs_CCelia Messages postés 15 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 24 avril 2008 1
23 avril 2008 à 15:20
je voulais te demnder qu signifie la fonction lenB(sBuffer) qu'est ce qu'elle permet de récupérer ?
Encore merci pour ton aide
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
23 avril 2008 à 15:23
F2 => Explorateur d'objets
Lenb <Entree>

Function LenB(Expression)
Membre de VBA.Strings
Renvoie le nombre d'octets nécessaires au stockage d'une variable


en gros, si la chaine contient au moins un caractère (donc <>0 )
on ajoute un ";"
0