J'ai actuellement ce code pour attaquer une base access qui contient
plusieurs tables (10)depuis excel:
'----------------------------
Dim DbF As Database
Dim RsF1, RSF2 As Recordset
Set DbF = DBEngine.OpenDatabase("c:\ma_base.mdb")
Set RsF1 = DbF.OpenRecordset(Name:="Clients", Type:=dbOpenTable)
Set RsF2 = DbF.OpenRecordset(Name:="Fournisseurs", Type:=dbOpenTable)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour Frank,
Au lieu d'ouvrir une table, pourquoi ne pas adresser une requête pour extraire seulement les éléments que tu désires.
'----------------------- Sub Requête()
Dim BD As Database, Rst As Recordset, Dim Requete As String Set BD = OpenDatabase("c:ma_base.mdb")
'à toi d'écrire une requête suffisamment précise pour n'extraire que la donnée sur le champ désiré
Requete = "SELECT Nom From Table1 Group By Nom ORDER By Nom"
' Comme le recordset de la requête ne contiendra qu'un champ, tu pourras utiliser une syntaxe comme ceci : msgbox rst.Fields(0).name
Set Rst = BD.OpenRecordset(Requete, dbOpenDynaset)
Rst.Close 'ferme le recordset BD.Close set Rst=Nothing: set Bd=Nothing
End sub '-----------------------
Salutations!
"Frank Michel" a écrit dans le message de news: Bonjour,
J'ai actuellement ce code pour attaquer une base access qui contient plusieurs tables (10)depuis excel:
'---------------------------- Dim DbF As Database Dim RsF1, RSF2 As Recordset
Set DbF = DBEngine.OpenDatabase("c:ma_base.mdb") Set RsF1 = DbF.OpenRecordset(Name:="Clients", Type:ÛOpenTable) Set RsF2 = DbF.OpenRecordset(Name:="Fournisseurs", Type:ÛOpenTable)
Cela me permetrait de rendre mes requetes dynamiques.
Une idée?
Meilleures salutations,
Frankie
Bonjour Frank,
Au lieu d'ouvrir une table, pourquoi ne pas adresser une requête pour extraire seulement les éléments que tu désires.
'-----------------------
Sub Requête()
Dim BD As Database, Rst As Recordset,
Dim Requete As String
Set BD = OpenDatabase("c:ma_base.mdb")
'à toi d'écrire une requête suffisamment précise pour n'extraire que la donnée sur le champ désiré
Requete = "SELECT Nom From Table1 Group By Nom ORDER By Nom"
' Comme le recordset de la requête ne contiendra qu'un champ, tu pourras utiliser une syntaxe comme ceci :
msgbox rst.Fields(0).name
Set Rst = BD.OpenRecordset(Requete, dbOpenDynaset)
Rst.Close 'ferme le recordset
BD.Close
set Rst=Nothing: set Bd=Nothing
End sub
'-----------------------
Salutations!
"Frank Michel" <frankie666@freesurf.ch> a écrit dans le message de news:9370f199.0307012153.79757279@posting.google.com...
Bonjour,
J'ai actuellement ce code pour attaquer une base access qui contient
plusieurs tables (10)depuis excel:
'----------------------------
Dim DbF As Database
Dim RsF1, RSF2 As Recordset
Set DbF = DBEngine.OpenDatabase("c:ma_base.mdb")
Set RsF1 = DbF.OpenRecordset(Name:="Clients", Type:ÛOpenTable)
Set RsF2 = DbF.OpenRecordset(Name:="Fournisseurs", Type:ÛOpenTable)
Au lieu d'ouvrir une table, pourquoi ne pas adresser une requête pour extraire seulement les éléments que tu désires.
'----------------------- Sub Requête()
Dim BD As Database, Rst As Recordset, Dim Requete As String Set BD = OpenDatabase("c:ma_base.mdb")
'à toi d'écrire une requête suffisamment précise pour n'extraire que la donnée sur le champ désiré
Requete = "SELECT Nom From Table1 Group By Nom ORDER By Nom"
' Comme le recordset de la requête ne contiendra qu'un champ, tu pourras utiliser une syntaxe comme ceci : msgbox rst.Fields(0).name
Set Rst = BD.OpenRecordset(Requete, dbOpenDynaset)
Rst.Close 'ferme le recordset BD.Close set Rst=Nothing: set Bd=Nothing
End sub '-----------------------
Salutations!
"Frank Michel" a écrit dans le message de news: Bonjour,
J'ai actuellement ce code pour attaquer une base access qui contient plusieurs tables (10)depuis excel:
'---------------------------- Dim DbF As Database Dim RsF1, RSF2 As Recordset
Set DbF = DBEngine.OpenDatabase("c:ma_base.mdb") Set RsF1 = DbF.OpenRecordset(Name:="Clients", Type:ÛOpenTable) Set RsF2 = DbF.OpenRecordset(Name:="Fournisseurs", Type:ÛOpenTable)