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
jb
1-On peut s'attacher à une table ou une requête Access avec Données/Données Externe/Créer une requête
2:En VBA DAO (penser à cocher Outils/Réfrences DAO 3.6) Sub RecordsetX() Dim db As Database Dim dt As Recordset Set db = OpenDatabase(ActiveWorkbook.Path & "access2000.mdb") Set dt = db.OpenRecordset("client") i = 2 Do While Not dt.EOF Cells(i, 1) = dt!nom_client Cells(i, 2) = dt!ville dt.MoveNext i = i + 1 Loop End Sub
JB
1-On peut s'attacher à une table ou une requête Access avec
Données/Données Externe/Créer une requête
2:En VBA DAO (penser à cocher Outils/Réfrences DAO 3.6)
Sub RecordsetX()
Dim db As Database
Dim dt As Recordset
Set db = OpenDatabase(ActiveWorkbook.Path & "access2000.mdb")
Set dt = db.OpenRecordset("client")
i = 2
Do While Not dt.EOF
Cells(i, 1) = dt!nom_client
Cells(i, 2) = dt!ville
dt.MoveNext
i = i + 1
Loop
End Sub
1-On peut s'attacher à une table ou une requête Access avec Données/Données Externe/Créer une requête
2:En VBA DAO (penser à cocher Outils/Réfrences DAO 3.6) Sub RecordsetX() Dim db As Database Dim dt As Recordset Set db = OpenDatabase(ActiveWorkbook.Path & "access2000.mdb") Set dt = db.OpenRecordset("client") i = 2 Do While Not dt.EOF Cells(i, 1) = dt!nom_client Cells(i, 2) = dt!ville dt.MoveNext i = i + 1 Loop End Sub
JB
docm
Bonjour.
On peut aussi utiliser la méthode CopyFromRecordset (Excel seulement).
'Créer d'abord une référence à Microsoft DAO Sub SortirDossiers()
Dim db As DAO.Database Dim RS As DAO.Recordset Dim f As DAO.Field Dim ws As DAO.WorkSpace
Set ws = DBEngine(0) 'Ouvrir la BDD Set db = ws.OpenDatabase("c:Office97OfficeExamplesNorthwind.MDB") 'Ouvrir la table Commandes Set RS = db.OpenRecordset("Commandes")
'Récupérer le nom des champs For Each f In RS.Fields Worksheets(1).Cells(1, f.OrdinalPosition + 1).Value = f.Name Next
'Utiliser la méthode CopyFromRecordset (Excel seulement) Worksheets("Feuil1").Range("A2").CopyFromRecordset RS
End Sub
docm
"Emcy" a écrit dans le message news: #
Bonjours,
Comment faire avec Excel (en Vba) pour sortir dans une feuille Excel une table faite sous Acces
Bonjour.
On peut aussi utiliser la méthode CopyFromRecordset (Excel seulement).
'Créer d'abord une référence à Microsoft DAO
Sub SortirDossiers()
Dim db As DAO.Database
Dim RS As DAO.Recordset
Dim f As DAO.Field
Dim ws As DAO.WorkSpace
Set ws = DBEngine(0)
'Ouvrir la BDD
Set db = ws.OpenDatabase("c:Office97OfficeExamplesNorthwind.MDB")
'Ouvrir la table Commandes
Set RS = db.OpenRecordset("Commandes")
'Récupérer le nom des champs
For Each f In RS.Fields
Worksheets(1).Cells(1, f.OrdinalPosition + 1).Value = f.Name
Next
'Utiliser la méthode CopyFromRecordset (Excel seulement)
Worksheets("Feuil1").Range("A2").CopyFromRecordset RS
End Sub
docm
"Emcy" <toto@bla.com> a écrit dans le message news:
#Q4EEg82FHA.3136@TK2MSFTNGP09.phx.gbl...
Bonjours,
Comment faire avec Excel (en Vba) pour sortir dans une feuille Excel une
table faite sous Acces
On peut aussi utiliser la méthode CopyFromRecordset (Excel seulement).
'Créer d'abord une référence à Microsoft DAO Sub SortirDossiers()
Dim db As DAO.Database Dim RS As DAO.Recordset Dim f As DAO.Field Dim ws As DAO.WorkSpace
Set ws = DBEngine(0) 'Ouvrir la BDD Set db = ws.OpenDatabase("c:Office97OfficeExamplesNorthwind.MDB") 'Ouvrir la table Commandes Set RS = db.OpenRecordset("Commandes")
'Récupérer le nom des champs For Each f In RS.Fields Worksheets(1).Cells(1, f.OrdinalPosition + 1).Value = f.Name Next
'Utiliser la méthode CopyFromRecordset (Excel seulement) Worksheets("Feuil1").Range("A2").CopyFromRecordset RS
End Sub
docm
"Emcy" a écrit dans le message news: #
Bonjours,
Comment faire avec Excel (en Vba) pour sortir dans une feuille Excel une table faite sous Acces
michdenis
Bonjour Emcy,
Voici un exemple avec ADO
'--------------------------------- Sub GetDataWithADO()
'Ajouter la bibliothèque suivante : 'Microsoft activex data objects 2.0 librairy
'Attention, si access possède un champ mémo 'Limitation à 1823 caractères le nombre de 'caractère importé dans Excel
Dim A As Long, B As Long, C As Integer Dim cnt As New ADODB.Connection Dim rst As New ADODB.Recordset Dim MyRange As Range
'détermine la cellule supérieur gauche où 'le recordset va être copié
With Worksheets("Feuil1") Set MyRange = .Range("g4") 'A définir End With
'La chaîne de connexion à une base de donnée Access cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=C:Mes Documentsbd2.mdb;"
requete = "Select * From NomDeMaMaTable"
'Requête déterminant la valeur du recordset rst.Open requete, cnt, adOpenStatic
'Si tu es intéressé de récupérer directement les noms 'des champs de ton recordset, tu peux utiliser ce 'qui suit : Do MyRange.Offset(, C) = rst.Fields(C).Name C = C + 1 x = x + 1 Loop Until x = rst.Fields.Count
'Cette ligne de code copie tous les enregistrements du recordset 'vers ta plage de cellule définie au début de la procédure. 'Cette ligne n'est pas valide pour une version plus agée qu'excel 2000 'La méthode version 97 fonctionne un peu différemment. MyRange.Offset(1, 0).CopyFromRecordset rst
'libérer l'espace mémoire des objets utilisés dans la procédure: Set MyRange = Nothing: Set rst = Nothing
End Sub '---------------------------------------
Salutations!
"Emcy" a écrit dans le message de news: % Bonjours,
Comment faire avec Excel (en Vba) pour sortir dans une feuille Excel une table faite sous Acces
Bonjour Emcy,
Voici un exemple avec ADO
'---------------------------------
Sub GetDataWithADO()
'Ajouter la bibliothèque suivante :
'Microsoft activex data objects 2.0 librairy
'Attention, si access possède un champ mémo
'Limitation à 1823 caractères le nombre de
'caractère importé dans Excel
Dim A As Long, B As Long, C As Integer
Dim cnt As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim MyRange As Range
'détermine la cellule supérieur gauche où
'le recordset va être copié
With Worksheets("Feuil1")
Set MyRange = .Range("g4") 'A définir
End With
'La chaîne de connexion à une base de donnée Access
cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:Mes Documentsbd2.mdb;"
requete = "Select * From NomDeMaMaTable"
'Requête déterminant la valeur du recordset
rst.Open requete, cnt, adOpenStatic
'Si tu es intéressé de récupérer directement les noms
'des champs de ton recordset, tu peux utiliser ce
'qui suit :
Do
MyRange.Offset(, C) = rst.Fields(C).Name
C = C + 1
x = x + 1
Loop Until x = rst.Fields.Count
'Cette ligne de code copie tous les enregistrements du recordset
'vers ta plage de cellule définie au début de la procédure.
'Cette ligne n'est pas valide pour une version plus agée qu'excel 2000
'La méthode version 97 fonctionne un peu différemment.
MyRange.Offset(1, 0).CopyFromRecordset rst
'libérer l'espace mémoire des objets utilisés dans la procédure:
Set MyRange = Nothing: Set rst = Nothing
End Sub
'---------------------------------------
Salutations!
"Emcy" <toto@bla.com> a écrit dans le message de news: %23Q4EEg82FHA.3136@TK2MSFTNGP09.phx.gbl...
Bonjours,
Comment faire avec Excel (en Vba) pour sortir dans une feuille Excel une
table faite sous Acces
'--------------------------------- Sub GetDataWithADO()
'Ajouter la bibliothèque suivante : 'Microsoft activex data objects 2.0 librairy
'Attention, si access possède un champ mémo 'Limitation à 1823 caractères le nombre de 'caractère importé dans Excel
Dim A As Long, B As Long, C As Integer Dim cnt As New ADODB.Connection Dim rst As New ADODB.Recordset Dim MyRange As Range
'détermine la cellule supérieur gauche où 'le recordset va être copié
With Worksheets("Feuil1") Set MyRange = .Range("g4") 'A définir End With
'La chaîne de connexion à une base de donnée Access cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=C:Mes Documentsbd2.mdb;"
requete = "Select * From NomDeMaMaTable"
'Requête déterminant la valeur du recordset rst.Open requete, cnt, adOpenStatic
'Si tu es intéressé de récupérer directement les noms 'des champs de ton recordset, tu peux utiliser ce 'qui suit : Do MyRange.Offset(, C) = rst.Fields(C).Name C = C + 1 x = x + 1 Loop Until x = rst.Fields.Count
'Cette ligne de code copie tous les enregistrements du recordset 'vers ta plage de cellule définie au début de la procédure. 'Cette ligne n'est pas valide pour une version plus agée qu'excel 2000 'La méthode version 97 fonctionne un peu différemment. MyRange.Offset(1, 0).CopyFromRecordset rst
'libérer l'espace mémoire des objets utilisés dans la procédure: Set MyRange = Nothing: Set rst = Nothing
End Sub '---------------------------------------
Salutations!
"Emcy" a écrit dans le message de news: % Bonjours,
Comment faire avec Excel (en Vba) pour sortir dans une feuille Excel une table faite sous Acces
anonymousA
Bonjour,
possible aussi en utilisant MSQuery que l'on peut appeler par VBA.
A+
Bonjours,
Comment faire avec Excel (en Vba) pour sortir dans une feuille Excel une table faite sous Acces
Bonjour,
possible aussi en utilisant MSQuery que l'on peut appeler par VBA.
A+
Bonjours,
Comment faire avec Excel (en Vba) pour sortir dans une feuille Excel une
table faite sous Acces