je veux lister les fichiers d'une base Access
j'ai repris l'article : http://faq.vb.free.fr/index.php?
question=3D70 et cela me sort faux
voici le code :
Dim cat As New ADOX.Catalog
Dim tbl As ADOX.Table
Public Function TableExists(cat As ADOX.Catalog, TableName=20
As String) As Boolean
' Enum=E8re toutes les tables du catalogue
For Each tbl In cat.Tables
If tbl.Name =3D TableName Then
TableExists =3D True
Exit For
End If
Next
Set tbl =3D Nothing
End Function
Private Sub Form_Load()
cat.ActiveConnection=20
=3D "Provider=3DMicrosoft.Jet.OLEDB.4.0;Data=20
Source=3DC:\bases\magasins.mdb"
MsgBox TableExists(cat, "Table1")
Set cat =3D Nothing
End Sub
Un sp=E9cialiste peut-il me donner l'erreur
A la limite je prefere ADO mais la aussi je me plante
Merci de poster les réponses au groupe afin d'en faire profiter à tous
JCM
Bonjour Zoury
aprés consultation de la fiche Google, j'ai fais le code suivant et cela ne marche pas :
Dim ADOcn As New ADODB.Connection Dim ADOtable As ADODB.Recordset Dim cheminTable As String Private Sub Form_Load() cheminTable = "C:MapMarketbasesmagasins.mdb"
'creation d'une connection With ADOcn .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "Data Source=" & cheminTable .CursorLocation = adUseClient .Open End With
'extraction des tables de magasins Set ADOtable = ADOcn.OpenSchema(adSchemaTables, "TABLE NAME") For Each TableDef In magasins.TableDefs If left(TableDef.Name, 4) <> "MSys" Then MsgBox "la table est " & TableDef.Name End If Next TableDef End Sub
Merci de poster les réponses au groupe afin d'en faire
profiter à tous
.
Bonjour Zoury
aprés consultation de la fiche Google, j'ai fais le code
suivant et cela ne marche pas :
Dim ADOcn As New ADODB.Connection
Dim ADOtable As ADODB.Recordset
Dim cheminTable As String
Private Sub Form_Load()
cheminTable = "C:MapMarketbasesmagasins.mdb"
'creation d'une connection
With ADOcn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & cheminTable
.CursorLocation = adUseClient
.Open
End With
'extraction des tables de magasins
Set ADOtable = ADOcn.OpenSchema(adSchemaTables, "TABLE
NAME")
For Each TableDef In magasins.TableDefs
If left(TableDef.Name, 4) <> "MSys" Then
MsgBox "la table est " & TableDef.Name
End If
Next TableDef
End Sub
aprés consultation de la fiche Google, j'ai fais le code suivant et cela ne marche pas :
Dim ADOcn As New ADODB.Connection Dim ADOtable As ADODB.Recordset Dim cheminTable As String Private Sub Form_Load() cheminTable = "C:MapMarketbasesmagasins.mdb"
'creation d'une connection With ADOcn .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "Data Source=" & cheminTable .CursorLocation = adUseClient .Open End With
'extraction des tables de magasins Set ADOtable = ADOcn.OpenSchema(adSchemaTables, "TABLE NAME") For Each TableDef In magasins.TableDefs If left(TableDef.Name, 4) <> "MSys" Then MsgBox "la table est " & TableDef.Name End If Next TableDef End Sub
Merci de poster les réponses au groupe afin d'en faire
profiter à tous
.
Jean-Marc
"JCM" a écrit dans le message de news:82c401c3e8a8$61e8c3a0$
Bonjour Zoury
aprés consultation de la fiche Google, j'ai fais le code suivant et cela ne marche pas :
Bonjour,
Peux tu donner plus de précisions que simplement "ça ne marche pas"? Que fait le programme? Une erreur se produit-elle? Si oui, laquelle ? As tu tracé ton programme en pas à pas, etc?
Jean-Marc
"JCM" <jean-claude.mansion@wanadoo.fr> a écrit dans le message de
news:82c401c3e8a8$61e8c3a0$a601280a@phx.gbl...
Bonjour Zoury
aprés consultation de la fiche Google, j'ai fais le code
suivant et cela ne marche pas :
Bonjour,
Peux tu donner plus de précisions que simplement "ça ne marche pas"?
Que fait le programme? Une erreur se produit-elle? Si oui, laquelle ?
As tu tracé ton programme en pas à pas, etc?
"JCM" a écrit dans le message de news:82c401c3e8a8$61e8c3a0$
Bonjour Zoury
aprés consultation de la fiche Google, j'ai fais le code suivant et cela ne marche pas :
Bonjour,
Peux tu donner plus de précisions que simplement "ça ne marche pas"? Que fait le programme? Une erreur se produit-elle? Si oui, laquelle ? As tu tracé ton programme en pas à pas, etc?
Jean-Marc
JCM
bonjour
quand je suis le code pas a pas cela BEUG sur la ligne :
Set ADOtableOcn.....................
le message d'erreur : le fournisseur ou l'objet ne prend pas en charge cette opération
Cordialement JCM
-----Message d'origine----- "JCM" a écrit dans le
message de
news:82c401c3e8a8$61e8c3a0$
Bonjour Zoury
aprés consultation de la fiche Google, j'ai fais le code suivant et cela ne marche pas :
Bonjour,
Peux tu donner plus de précisions que simplement "ça ne
marche pas"?
Que fait le programme? Une erreur se produit-elle? Si
oui, laquelle ?
As tu tracé ton programme en pas à pas, etc?
Jean-Marc
.
bonjour
quand je suis le code pas a pas cela BEUG sur la ligne :
Set ADOtable=ADOcn.....................
le message d'erreur : le fournisseur ou l'objet ne prend
pas en charge cette opération
Cordialement
JCM
-----Message d'origine-----
"JCM" <jean-claude.mansion@wanadoo.fr> a écrit dans le
message de
news:82c401c3e8a8$61e8c3a0$a601280a@phx.gbl...
Bonjour Zoury
aprés consultation de la fiche Google, j'ai fais le code
suivant et cela ne marche pas :
Bonjour,
Peux tu donner plus de précisions que simplement "ça ne
marche pas"?
Que fait le programme? Une erreur se produit-elle? Si
quand je suis le code pas a pas cela BEUG sur la ligne :
Set ADOtableOcn.....................
le message d'erreur : le fournisseur ou l'objet ne prend pas en charge cette opération
Cordialement JCM
-----Message d'origine----- "JCM" a écrit dans le
message de
news:82c401c3e8a8$61e8c3a0$
Bonjour Zoury
aprés consultation de la fiche Google, j'ai fais le code suivant et cela ne marche pas :
Bonjour,
Peux tu donner plus de précisions que simplement "ça ne
marche pas"?
Que fait le programme? Une erreur se produit-elle? Si
oui, laquelle ?
As tu tracé ton programme en pas à pas, etc?
Jean-Marc
.
Jean-Marc
"JCM" a écrit dans le message de news:7b0601c3e8ef$9887cbd0$
Hello,
voici le code correct
Private Sub Form_Load() Dim ADOcn As New ADODB.Connection ' pour la connection Dim rs As ADODB.Recordset ' pour la query Dim cheminTable As String ' nom de la table Dim i As Integer
cheminTable = "C:jmdb1.mdb" ' ma base à moi
'creation d'une connection With ADOcn .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "Data Source=" & cheminTable .CursorLocation = adUseClient .Open End With
'extraction des tables de magasins Set rs = ADOcn.OpenSchema(adSchemaTables) ' on récupère le shéma de la DB, les tables seulement
' comptons le nombre de champs (il y en aura 9) For i = 0 To rs.Fields.Count - 1 Debug.Print rs.Fields(i).Name; vbTab; ' affichons les noms des champs Next i Debug.Print While Not rs.EOF ' puis on parcous le résultat du openSchema For i = 0 To rs.Fields.Count - 1 Debug.Print rs.Fields(i).Value; vbTab; ' et pour chaque record on affiche tous les champs Next i Debug.Print rs.MoveNext Wend End Sub
il va afficher les tables systemes de ta base, puis les tables que tu as créé.
Ce code fonctionne avec VB6, j'ai fait une base d'exemple avec access.
Jean_marc
"JCM" <jean-claude.mansion@wanadoo.fr> a écrit dans le message de
news:7b0601c3e8ef$9887cbd0$a101280a@phx.gbl...
Hello,
voici le code correct
Private Sub Form_Load()
Dim ADOcn As New ADODB.Connection ' pour la connection
Dim rs As ADODB.Recordset ' pour la query
Dim cheminTable As String ' nom de la table
Dim i As Integer
cheminTable = "C:jmdb1.mdb" ' ma base à moi
'creation d'une connection
With ADOcn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & cheminTable
.CursorLocation = adUseClient
.Open
End With
'extraction des tables de magasins
Set rs = ADOcn.OpenSchema(adSchemaTables) ' on récupère le shéma de la
DB, les tables seulement
' comptons le nombre de champs (il y en aura 9)
For i = 0 To rs.Fields.Count - 1
Debug.Print rs.Fields(i).Name; vbTab; ' affichons les noms des
champs
Next i
Debug.Print
While Not rs.EOF ' puis on parcous le résultat du openSchema
For i = 0 To rs.Fields.Count - 1
Debug.Print rs.Fields(i).Value; vbTab; ' et pour chaque record
on affiche tous les champs
Next i
Debug.Print
rs.MoveNext
Wend
End Sub
il va afficher les tables systemes de ta base, puis les tables que tu as
créé.
Ce code fonctionne avec VB6, j'ai fait une base d'exemple avec access.
"JCM" a écrit dans le message de news:7b0601c3e8ef$9887cbd0$
Hello,
voici le code correct
Private Sub Form_Load() Dim ADOcn As New ADODB.Connection ' pour la connection Dim rs As ADODB.Recordset ' pour la query Dim cheminTable As String ' nom de la table Dim i As Integer
cheminTable = "C:jmdb1.mdb" ' ma base à moi
'creation d'une connection With ADOcn .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "Data Source=" & cheminTable .CursorLocation = adUseClient .Open End With
'extraction des tables de magasins Set rs = ADOcn.OpenSchema(adSchemaTables) ' on récupère le shéma de la DB, les tables seulement
' comptons le nombre de champs (il y en aura 9) For i = 0 To rs.Fields.Count - 1 Debug.Print rs.Fields(i).Name; vbTab; ' affichons les noms des champs Next i Debug.Print While Not rs.EOF ' puis on parcous le résultat du openSchema For i = 0 To rs.Fields.Count - 1 Debug.Print rs.Fields(i).Value; vbTab; ' et pour chaque record on affiche tous les champs Next i Debug.Print rs.MoveNext Wend End Sub
il va afficher les tables systemes de ta base, puis les tables que tu as créé.
Ce code fonctionne avec VB6, j'ai fait une base d'exemple avec access.
Jean_marc
JCM
Bonjour Jean Marc
Merci de ta réponse, mais je veux uniquement extraire les noms des tables de la base magasins.
C'est pour pouvoir intégrer le nom des tables dans un menu dynamique : ouvrir magasin
Cordialement Jean Claude
-----Message d'origine----- "JCM" a écrit dans le
message de
news:7b0601c3e8ef$9887cbd0$
Hello,
voici le code correct
Private Sub Form_Load() Dim ADOcn As New ADODB.Connection ' pour la connection Dim rs As ADODB.Recordset ' pour la
query
Dim cheminTable As String ' nom de
la table
Dim i As Integer
cheminTable = "C:jmdb1.mdb" ' ma base à moi
'creation d'une connection With ADOcn .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "Data Source=" & cheminTable .CursorLocation = adUseClient .Open End With
'extraction des tables de magasins Set rs = ADOcn.OpenSchema(adSchemaTables) ' on
récupère le shéma de la
DB, les tables seulement
' comptons le nombre de champs (il y en aura 9) For i = 0 To rs.Fields.Count - 1 Debug.Print rs.Fields(i).Name; vbTab; ' affichons
les noms des
champs Next i Debug.Print While Not rs.EOF ' puis on parcous le résultat du
openSchema
For i = 0 To rs.Fields.Count - 1 Debug.Print rs.Fields(i).Value; vbTab; ' et
pour chaque record
on affiche tous les champs Next i Debug.Print rs.MoveNext Wend End Sub
il va afficher les tables systemes de ta base, puis les
tables que tu as
créé.
Ce code fonctionne avec VB6, j'ai fait une base d'exemple
avec access.
Jean_marc
.
Bonjour Jean Marc
Merci de ta réponse, mais je veux uniquement extraire les
noms des tables de la base magasins.
C'est pour pouvoir intégrer le nom des tables dans un menu
dynamique : ouvrir magasin
Cordialement
Jean Claude
-----Message d'origine-----
"JCM" <jean-claude.mansion@wanadoo.fr> a écrit dans le
message de
news:7b0601c3e8ef$9887cbd0$a101280a@phx.gbl...
Hello,
voici le code correct
Private Sub Form_Load()
Dim ADOcn As New ADODB.Connection ' pour la connection
Dim rs As ADODB.Recordset ' pour la
query
Dim cheminTable As String ' nom de
la table
Dim i As Integer
cheminTable = "C:jmdb1.mdb" ' ma base à moi
'creation d'une connection
With ADOcn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & cheminTable
.CursorLocation = adUseClient
.Open
End With
'extraction des tables de magasins
Set rs = ADOcn.OpenSchema(adSchemaTables) ' on
récupère le shéma de la
DB, les tables seulement
' comptons le nombre de champs (il y en aura 9)
For i = 0 To rs.Fields.Count - 1
Debug.Print rs.Fields(i).Name; vbTab; ' affichons
les noms des
champs
Next i
Debug.Print
While Not rs.EOF ' puis on parcous le résultat du
openSchema
For i = 0 To rs.Fields.Count - 1
Debug.Print rs.Fields(i).Value; vbTab; ' et
pour chaque record
on affiche tous les champs
Next i
Debug.Print
rs.MoveNext
Wend
End Sub
il va afficher les tables systemes de ta base, puis les
tables que tu as
créé.
Ce code fonctionne avec VB6, j'ai fait une base d'exemple
Merci de ta réponse, mais je veux uniquement extraire les noms des tables de la base magasins.
C'est pour pouvoir intégrer le nom des tables dans un menu dynamique : ouvrir magasin
Cordialement Jean Claude
-----Message d'origine----- "JCM" a écrit dans le
message de
news:7b0601c3e8ef$9887cbd0$
Hello,
voici le code correct
Private Sub Form_Load() Dim ADOcn As New ADODB.Connection ' pour la connection Dim rs As ADODB.Recordset ' pour la
query
Dim cheminTable As String ' nom de
la table
Dim i As Integer
cheminTable = "C:jmdb1.mdb" ' ma base à moi
'creation d'une connection With ADOcn .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "Data Source=" & cheminTable .CursorLocation = adUseClient .Open End With
'extraction des tables de magasins Set rs = ADOcn.OpenSchema(adSchemaTables) ' on
récupère le shéma de la
DB, les tables seulement
' comptons le nombre de champs (il y en aura 9) For i = 0 To rs.Fields.Count - 1 Debug.Print rs.Fields(i).Name; vbTab; ' affichons
les noms des
champs Next i Debug.Print While Not rs.EOF ' puis on parcous le résultat du
openSchema
For i = 0 To rs.Fields.Count - 1 Debug.Print rs.Fields(i).Value; vbTab; ' et
pour chaque record
on affiche tous les champs Next i Debug.Print rs.MoveNext Wend End Sub
il va afficher les tables systemes de ta base, puis les
tables que tu as
créé.
Ce code fonctionne avec VB6, j'ai fait une base d'exemple
avec access.
Jean_marc
.
JCM
Jean Marc
j'ai trouvé la solution :
Dim LenrPRE As Integer Dim latable As String LenrPRE = 0
Set ADOtable = ADOcn.OpenSchema(adSchemaTables) Do Until ADOtable.EOF Debug.Print "Table name: " & _ ADOtable!TABLE_NAME & vbCr & _ "Table type: " & ADOtable!TABLE_TYPE & vbCr LenrPRE = LenrPRE + 1 On Error Resume Next 'permet de charger un élément sur le précédent Load MnuGSIndex(LenrPRE) 'charge le nouvel élément MnuGSIndex(LenrPRE).Visible = True 'assure la visibilité latable = ADOtable!TABLE_NAME 'récupère le texte MnuGSIndex(LenrPRE).Caption = latable 'affecte le texte à l'Item du menu ADOtable.MoveNext Loop
Merci encore Cordialement JCM
-----Message d'origine----- "JCM" a écrit dans le
message de
news:7b0601c3e8ef$9887cbd0$
Hello,
voici le code correct
Private Sub Form_Load() Dim ADOcn As New ADODB.Connection ' pour la connection Dim rs As ADODB.Recordset ' pour la
query
Dim cheminTable As String ' nom de
la table
Dim i As Integer
cheminTable = "C:jmdb1.mdb" ' ma base à moi
'creation d'une connection With ADOcn .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "Data Source=" & cheminTable .CursorLocation = adUseClient .Open End With
'extraction des tables de magasins Set rs = ADOcn.OpenSchema(adSchemaTables) ' on
récupère le shéma de la
DB, les tables seulement
' comptons le nombre de champs (il y en aura 9) For i = 0 To rs.Fields.Count - 1 Debug.Print rs.Fields(i).Name; vbTab; ' affichons
les noms des
champs Next i Debug.Print While Not rs.EOF ' puis on parcous le résultat du
openSchema
For i = 0 To rs.Fields.Count - 1 Debug.Print rs.Fields(i).Value; vbTab; ' et
pour chaque record
on affiche tous les champs Next i Debug.Print rs.MoveNext Wend End Sub
il va afficher les tables systemes de ta base, puis les
tables que tu as
créé.
Ce code fonctionne avec VB6, j'ai fait une base d'exemple
avec access.
Jean_marc
.
Jean Marc
j'ai trouvé la solution :
Dim LenrPRE As Integer
Dim latable As String
LenrPRE = 0
Set ADOtable = ADOcn.OpenSchema(adSchemaTables)
Do Until ADOtable.EOF
Debug.Print "Table name: " & _
ADOtable!TABLE_NAME & vbCr & _
"Table type: " & ADOtable!TABLE_TYPE & vbCr
LenrPRE = LenrPRE + 1
On Error Resume Next 'permet de charger un
élément sur le précédent
Load MnuGSIndex(LenrPRE) 'charge le nouvel élément
MnuGSIndex(LenrPRE).Visible = True 'assure la
visibilité
latable = ADOtable!TABLE_NAME 'récupère le texte
MnuGSIndex(LenrPRE).Caption = latable 'affecte le
texte à l'Item du menu
ADOtable.MoveNext
Loop
Merci encore
Cordialement
JCM
-----Message d'origine-----
"JCM" <jean-claude.mansion@wanadoo.fr> a écrit dans le
message de
news:7b0601c3e8ef$9887cbd0$a101280a@phx.gbl...
Hello,
voici le code correct
Private Sub Form_Load()
Dim ADOcn As New ADODB.Connection ' pour la connection
Dim rs As ADODB.Recordset ' pour la
query
Dim cheminTable As String ' nom de
la table
Dim i As Integer
cheminTable = "C:jmdb1.mdb" ' ma base à moi
'creation d'une connection
With ADOcn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & cheminTable
.CursorLocation = adUseClient
.Open
End With
'extraction des tables de magasins
Set rs = ADOcn.OpenSchema(adSchemaTables) ' on
récupère le shéma de la
DB, les tables seulement
' comptons le nombre de champs (il y en aura 9)
For i = 0 To rs.Fields.Count - 1
Debug.Print rs.Fields(i).Name; vbTab; ' affichons
les noms des
champs
Next i
Debug.Print
While Not rs.EOF ' puis on parcous le résultat du
openSchema
For i = 0 To rs.Fields.Count - 1
Debug.Print rs.Fields(i).Value; vbTab; ' et
pour chaque record
on affiche tous les champs
Next i
Debug.Print
rs.MoveNext
Wend
End Sub
il va afficher les tables systemes de ta base, puis les
tables que tu as
créé.
Ce code fonctionne avec VB6, j'ai fait une base d'exemple
Dim LenrPRE As Integer Dim latable As String LenrPRE = 0
Set ADOtable = ADOcn.OpenSchema(adSchemaTables) Do Until ADOtable.EOF Debug.Print "Table name: " & _ ADOtable!TABLE_NAME & vbCr & _ "Table type: " & ADOtable!TABLE_TYPE & vbCr LenrPRE = LenrPRE + 1 On Error Resume Next 'permet de charger un élément sur le précédent Load MnuGSIndex(LenrPRE) 'charge le nouvel élément MnuGSIndex(LenrPRE).Visible = True 'assure la visibilité latable = ADOtable!TABLE_NAME 'récupère le texte MnuGSIndex(LenrPRE).Caption = latable 'affecte le texte à l'Item du menu ADOtable.MoveNext Loop
Merci encore Cordialement JCM
-----Message d'origine----- "JCM" a écrit dans le
message de
news:7b0601c3e8ef$9887cbd0$
Hello,
voici le code correct
Private Sub Form_Load() Dim ADOcn As New ADODB.Connection ' pour la connection Dim rs As ADODB.Recordset ' pour la
query
Dim cheminTable As String ' nom de
la table
Dim i As Integer
cheminTable = "C:jmdb1.mdb" ' ma base à moi
'creation d'une connection With ADOcn .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "Data Source=" & cheminTable .CursorLocation = adUseClient .Open End With
'extraction des tables de magasins Set rs = ADOcn.OpenSchema(adSchemaTables) ' on
récupère le shéma de la
DB, les tables seulement
' comptons le nombre de champs (il y en aura 9) For i = 0 To rs.Fields.Count - 1 Debug.Print rs.Fields(i).Name; vbTab; ' affichons
les noms des
champs Next i Debug.Print While Not rs.EOF ' puis on parcous le résultat du
openSchema
For i = 0 To rs.Fields.Count - 1 Debug.Print rs.Fields(i).Value; vbTab; ' et
pour chaque record
on affiche tous les champs Next i Debug.Print rs.MoveNext Wend End Sub
il va afficher les tables systemes de ta base, puis les
tables que tu as
créé.
Ce code fonctionne avec VB6, j'ai fait une base d'exemple