Bonjour les amis
svp est ce que quelqu’un peut me rendre ce service?
j'ai une base de donnée Access et je veux remplir une datagridv par la liste des tables de ma base de donnée.
si possible un code simple.
merci d'avantage
Bonjour les amis
svp est ce que quelqu’un peut me rendre ce service?
j'ai une base de donnée Access et je veux remplir une datagridv par la liste des tables de ma base de donnée.
si possible un code simple.
merci d'avantage
Bonjour,
Cette requête SQL retourne la liste des tables dans une base Access ACCDB :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT MSysObjects.Name AS table_name FROM MSysObjects WHERE (((Left([Name],1))<>"~") AND ((Left([Name],4))<>"MSys") AND ((MSysObjects.Type) In (1,4,6)) AND ((MSysObjects.Flags)=0)) order by MSysObjects.Name
Il suffit ensuite de charger le résultat dans un datagridview.
On ne jouit bien que de ce qu’on partage.
Merci Mon Ami mais cette requête ne marche pas
elle s’exécute bien sur Access 2007 mais en vb2010 me donne ce message d'erreur : Impossible de lire les enregistrements. Aucune autorisation de lecture sur « MSysObjects »
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 req = "SELECT MSysObjects.Name AS table_name FROM(MSysObjects) WHERE (((Left([Name],1))<>'~') AND ((Left([Name],4))<>'MSys') AND ((MSysObjects.Type) In (1,4,6)) AND ((MSysObjects.Flags)=0)) order by MSysObjects.Name" charger_grid_view(maform, req, dgvv)
Quelle est l'extension de ton fichier de base de données Access ?
On ne jouit bien que de ce qu’on partage.
ma base de donnée Access 2007 extension .accdb
c'est bizarre la requête fonctionne 100% en Access et sql Access et ne fonctionne pas en vb 2010 par code????????????
j'ai consulté d'autre forum ils ont proposé de modifier les autorisations d'accée dans la base de donnée, même si ça marche c'est impossible dans mon cas car je vais utilisé des bases de données qui ne sont pas disponible tout le temps.
si c'est nécessaire je veux modifie ces autorisation par code vb.
en attendant la résolution de mon problème notamment la requête précitée j'ai trouvé une autre solution sans utilisation de ladite requête.
dans le module j'ai créer cette fonction :
en suite j'ai fais le code suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Public Function ListeTables(ByVal txt As String, ByVal txt1 As String) If txt = txt1 Then Return True Else Return False End If End Function
mais j’attends toujours vos repenses concernant la requête précitée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Sub test1() connection() Dim var As DataTable var = cnn1.GetSchema("Tables") For Each element2 As DataRow In var.Rows If ListeTables(element2.Item(3), "TABLE") = True Then dgvv.Rows.Add() dgvv(0, (dgvv.RowCount - 1)).Value = element2.Item(2) End If Next cnn1.Close() End Sub
merci les amis
Bonjour,
Le code suivant donne la liste de toutes les tables d'une DB Access (Testé en 2003 et 2013).
Attention, avant de tester, tu dois ajouter la référence Microsoft.Office.Interop.Access à ton projet (cf. illustration ci-dessous).
L'Interop n'est sans doute pas le plus performant des outils, mais ça dépanne ...
Voici le code :
J'espère que ça t'aidera !
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 'Dim NomDBComplet As String = "D:\Tmp\TestAccesDBSQLExpress\MonStock2003.mdb" Dim NomDBComplet As String = "D:\Tmp\TestAccesDBSQLExpress\MonStock2013.accdb" Dim AppAccess As New Microsoft.Office.Interop.Access.Application Dim NomTable As String AppAccess.OpenCurrentDatabase(NomDBComplet) For Each Obj As Object In AppAccess.CurrentData.AllTables ' Contient toutes les tables. NomTable = Obj.Name If Not NomTable Like "MSys*" Then ' Eviter les tables systèmes. MessageBox.Show(NomTable) End If Next AppAccess.CloseCurrentDatabase()
merci Phil Rob pour votre attention une autre façon de le faire
mais je tien toujours à savoir pourquoi cette requête ne fonctionne pas
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager