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
Steph_D
Bonjour,
En adaptant la procédure suivante
' Nom de la base de données -- MesDATAS.mdb ' Requête SQL définie dans la macro ' Le classeur ici doit être dans le même dossier que la base d'access ' Référencer Microsoft ActiveX Data Objects 2.6 Library ' (menu Outils/Référence)
Sub ImporteMesLignes()
Dim MesDonneesAccess As ADODB.Recordset Dim MaConnexionBase As String Dim MonScript As String Dim intColIndex As Integer Dim MaDateDebut, MaDateFin As String
' Crée la chaine de connexion. Nom de l'ADO, le chemin et la base de ' données ' 3.51 pour access95 et 97, 4.0 pour access 2000 etc. MaConnexionBase = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source= " & PathMyApplication & "MesDatas.mdb;"
' Crée la requête SQL MonScript = "select * from [Requête];"
' Crée l'objet Recordset et exécute la requête Set MesDonneesAccess = New ADODB.Recordset MesDonneesAccess.Open MonScript, MaConnexionBase, _ adLockReadOnly, adLockReadOnly, adCmdText
Application.StatusBar = "Lancement de la requête"
' On s'assure qu'il y a des enregistrements à récupérer If Not MesDonneesAccess.EOF Then ' Mise en place des noms de champs comme entêtes de colonne For intColIndex = 0 To MesDonneesAccess.Fields.Count - 1 TargetRange.Offset(0, intColIndex).Value = _ MesDonneesAccess.Fields(intColIndex).Name Next ' Vide le contenu du jeu d'enregistrements dans la feuille Application.StatusBar = "Extraction des enregistrements ..." TargetRange.Offset(1, 0).CopyFromRecordset MesDonneesAccess Nbrecords = Sheets("Feuil1").Range("A65536").End(-4162).Row - 1 MsgBox "Import de " & Nbrecords & " enregistrement(s) ..." Else MsgBox "Il n'y a aucun enregistrement correspondant.", _ vbInformation End If
' Ferme le jeu d'enregistrements s'il est toujours ouvert ... If CBool(MesDonneesAccess.State And adStateOpen) Then _ MesDonneesAccess.Close
Set MesDonneesAccess = Nothing
Application.StatusBar = ""
End Sub
Plus d'infos ici http://ericrenaud.free.fr
Steph D.
Bonjour,
En adaptant la procédure suivante
' Nom de la base de données -- MesDATAS.mdb
' Requête SQL définie dans la macro
' Le classeur ici doit être dans le même dossier que la base d'access
' Référencer Microsoft ActiveX Data Objects 2.6 Library
' (menu Outils/Référence)
Sub ImporteMesLignes()
Dim MesDonneesAccess As ADODB.Recordset
Dim MaConnexionBase As String
Dim MonScript As String
Dim intColIndex As Integer
Dim MaDateDebut, MaDateFin As String
' Crée la chaine de connexion. Nom de l'ADO, le chemin et la base de
' données
' 3.51 pour access95 et 97, 4.0 pour access 2000 etc.
MaConnexionBase = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source= " & PathMyApplication & "MesDatas.mdb;"
' Crée la requête SQL
MonScript = "select * from [Requête];"
' Crée l'objet Recordset et exécute la requête
Set MesDonneesAccess = New ADODB.Recordset
MesDonneesAccess.Open MonScript, MaConnexionBase, _
adLockReadOnly, adLockReadOnly, adCmdText
Application.StatusBar = "Lancement de la requête"
' On s'assure qu'il y a des enregistrements à récupérer
If Not MesDonneesAccess.EOF Then
' Mise en place des noms de champs comme entêtes de colonne
For intColIndex = 0 To MesDonneesAccess.Fields.Count - 1
TargetRange.Offset(0, intColIndex).Value = _
MesDonneesAccess.Fields(intColIndex).Name
Next
' Vide le contenu du jeu d'enregistrements dans la feuille
Application.StatusBar = "Extraction des enregistrements ..."
TargetRange.Offset(1, 0).CopyFromRecordset MesDonneesAccess
Nbrecords = Sheets("Feuil1").Range("A65536").End(-4162).Row - 1
MsgBox "Import de " & Nbrecords & " enregistrement(s) ..."
Else
MsgBox "Il n'y a aucun enregistrement correspondant.", _
vbInformation
End If
' Ferme le jeu d'enregistrements s'il est toujours ouvert ...
If CBool(MesDonneesAccess.State And adStateOpen) Then _
MesDonneesAccess.Close
' Nom de la base de données -- MesDATAS.mdb ' Requête SQL définie dans la macro ' Le classeur ici doit être dans le même dossier que la base d'access ' Référencer Microsoft ActiveX Data Objects 2.6 Library ' (menu Outils/Référence)
Sub ImporteMesLignes()
Dim MesDonneesAccess As ADODB.Recordset Dim MaConnexionBase As String Dim MonScript As String Dim intColIndex As Integer Dim MaDateDebut, MaDateFin As String
' Crée la chaine de connexion. Nom de l'ADO, le chemin et la base de ' données ' 3.51 pour access95 et 97, 4.0 pour access 2000 etc. MaConnexionBase = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source= " & PathMyApplication & "MesDatas.mdb;"
' Crée la requête SQL MonScript = "select * from [Requête];"
' Crée l'objet Recordset et exécute la requête Set MesDonneesAccess = New ADODB.Recordset MesDonneesAccess.Open MonScript, MaConnexionBase, _ adLockReadOnly, adLockReadOnly, adCmdText
Application.StatusBar = "Lancement de la requête"
' On s'assure qu'il y a des enregistrements à récupérer If Not MesDonneesAccess.EOF Then ' Mise en place des noms de champs comme entêtes de colonne For intColIndex = 0 To MesDonneesAccess.Fields.Count - 1 TargetRange.Offset(0, intColIndex).Value = _ MesDonneesAccess.Fields(intColIndex).Name Next ' Vide le contenu du jeu d'enregistrements dans la feuille Application.StatusBar = "Extraction des enregistrements ..." TargetRange.Offset(1, 0).CopyFromRecordset MesDonneesAccess Nbrecords = Sheets("Feuil1").Range("A65536").End(-4162).Row - 1 MsgBox "Import de " & Nbrecords & " enregistrement(s) ..." Else MsgBox "Il n'y a aucun enregistrement correspondant.", _ vbInformation End If
' Ferme le jeu d'enregistrements s'il est toujours ouvert ... If CBool(MesDonneesAccess.State And adStateOpen) Then _ MesDonneesAccess.Close
Set MesDonneesAccess = Nothing
Application.StatusBar = ""
End Sub
Plus d'infos ici http://ericrenaud.free.fr
Steph D.
Opus
Ca ne fonctionne pas.
Bien que des enregistrements existent dans la requête ACCESS,j'ai le message "Il n'y a aucun enregistrement correspondant." dans EXCEL.
?
(re)snif.
Ca ne fonctionne pas.
Bien que des enregistrements existent dans la requête ACCESS,j'ai le message
"Il n'y a aucun enregistrement correspondant." dans EXCEL.
Bien que des enregistrements existent dans la requête ACCESS,j'ai le message "Il n'y a aucun enregistrement correspondant." dans EXCEL.
?
(re)snif.
Steph_D
Mince, peut-être la version d'access, la location de la base ou du classeur ...
Vous pouvez visionner la macro originale ici sur http://ericrenaud.free.fr/daoado.htm (utilisez le trigger sur la partie gauche, partie ADO).
Un copier-coller de la procédure qui m'a bien aidée
Bon courage
Définition des éléments utilisés : Nom de la base de données --> Clients.mdb Table contenant les données à exporter vers Excel --> ListeClients Champs de la table ListeClients --> Client, Rue, Adresse, CPVille et Pays Nom du classeur Excel --> Import données Access dans XL.xls Feuille de calcul Excel recevant les données --> Données La requête SQL utilisée --> SELECT ListeClients.* FROM ListeClients (Ce qui correspond à l'extraction de tous les enregistrements de la table ListeClients)
Sub ImporteDataAccess()
Dim rsData As ADODB.Recordset
Dim szConnect As String
Dim szSQL As String
Dim intColIndex As Integer
Application.ScreenUpdating = False
PathMyApplication = ActiveWorkbook.Path & ""
Set TargetRange = ActiveWorkbook.Sheets( "Données" ).Cells( 1 , 1 )
MsgBox "Import de " & Nbrecords & " enregistrement(s) ..."
Else
MsgBox "Il n'y a aucun enregistrement correspondant." , vbInformation
ActiveWorkbook.Close ( False )
End If
' Ferme le jeu d'enregistrements s'il est toujours ouvert ...
If CBool (rsData.State And adStateOpen) Then rsData.Close
Set rsData = Nothing
Application.StatusBar = ""
End Sub
Mince, peut-être la version d'access, la location de la base ou du classeur
...
Vous pouvez visionner la macro originale ici sur
http://ericrenaud.free.fr/daoado.htm (utilisez le trigger sur la partie
gauche, partie ADO).
Un copier-coller de la procédure qui m'a bien aidée
Bon courage
Définition des éléments utilisés :
Nom de la base de données --> Clients.mdb
Table contenant les données à exporter vers Excel --> ListeClients
Champs de la table ListeClients --> Client, Rue, Adresse, CPVille
et Pays
Nom du classeur Excel --> Import données Access dans XL.xls
Feuille de calcul Excel recevant les données --> Données
La requête SQL utilisée --> SELECT ListeClients.* FROM ListeClients
(Ce qui correspond à l'extraction de tous les enregistrements de la
table ListeClients)
Sub ImporteDataAccess()
Dim rsData As ADODB.Recordset
Dim szConnect As String
Dim szSQL As String
Dim intColIndex As Integer
Application.ScreenUpdating = False
PathMyApplication = ActiveWorkbook.Path & ""
Set TargetRange = ActiveWorkbook.Sheets( "Données" ).Cells( 1 , 1 )
Mince, peut-être la version d'access, la location de la base ou du classeur ...
Vous pouvez visionner la macro originale ici sur http://ericrenaud.free.fr/daoado.htm (utilisez le trigger sur la partie gauche, partie ADO).
Un copier-coller de la procédure qui m'a bien aidée
Bon courage
Définition des éléments utilisés : Nom de la base de données --> Clients.mdb Table contenant les données à exporter vers Excel --> ListeClients Champs de la table ListeClients --> Client, Rue, Adresse, CPVille et Pays Nom du classeur Excel --> Import données Access dans XL.xls Feuille de calcul Excel recevant les données --> Données La requête SQL utilisée --> SELECT ListeClients.* FROM ListeClients (Ce qui correspond à l'extraction de tous les enregistrements de la table ListeClients)
Sub ImporteDataAccess()
Dim rsData As ADODB.Recordset
Dim szConnect As String
Dim szSQL As String
Dim intColIndex As Integer
Application.ScreenUpdating = False
PathMyApplication = ActiveWorkbook.Path & ""
Set TargetRange = ActiveWorkbook.Sheets( "Données" ).Cells( 1 , 1 )
MsgBox "Import de " & Nbrecords & " enregistrement(s) ..."
Else
MsgBox "Il n'y a aucun enregistrement correspondant." , vbInformation
ActiveWorkbook.Close ( False )
End If
' Ferme le jeu d'enregistrements s'il est toujours ouvert ...
If CBool (rsData.State And adStateOpen) Then rsData.Close
Set rsData = Nothing
Application.StatusBar = ""
End Sub
Opus
Et le pire, c'est que mes importations fonctionnent correctement avec les tables... Mais avec les requêtes: non!
Pfff
Mince, peut-être la version d'access, la location de la base ou du classeur ....
Vous pouvez visionner la macro originale ici sur http://ericrenaud.free.fr/daoado.htm (utilisez le trigger sur la partie gauche, partie ADO).
Un copier-coller de la procédure qui m'a bien aidée
Bon courage
Définition des éléments utilisés : Nom de la base de données --> Clients.mdb Table contenant les données à exporter vers Excel --> ListeClients Champs de la table ListeClients --> Client, Rue, Adresse, CPVille et Pays Nom du classeur Excel --> Import données Access dans XL.xls Feuille de calcul Excel recevant les données --> Données La requête SQL utilisée --> SELECT ListeClients.* FROM ListeClients (Ce qui correspond à l'extraction de tous les enregistrements de la table ListeClients)
Sub ImporteDataAccess()
Dim rsData As ADODB.Recordset
Dim szConnect As String
Dim szSQL As String
Dim intColIndex As Integer
Application.ScreenUpdating = False
PathMyApplication = ActiveWorkbook.Path & ""
Set TargetRange = ActiveWorkbook.Sheets( "Données" ).Cells( 1 , 1 )
MsgBox "Import de " & Nbrecords & " enregistrement(s) ..."
Else
MsgBox "Il n'y a aucun enregistrement correspondant." , vbInformation
ActiveWorkbook.Close ( False )
End If
' Ferme le jeu d'enregistrements s'il est toujours ouvert ...
If CBool (rsData.State And adStateOpen) Then rsData.Close
Set rsData = Nothing
Application.StatusBar = ""
End Sub
Et le pire, c'est que mes importations fonctionnent correctement avec les
tables...
Mais avec les requêtes: non!
Pfff
Mince, peut-être la version d'access, la location de la base ou du classeur
....
Vous pouvez visionner la macro originale ici sur
http://ericrenaud.free.fr/daoado.htm (utilisez le trigger sur la partie
gauche, partie ADO).
Un copier-coller de la procédure qui m'a bien aidée
Bon courage
Définition des éléments utilisés :
Nom de la base de données --> Clients.mdb
Table contenant les données à exporter vers Excel --> ListeClients
Champs de la table ListeClients --> Client, Rue, Adresse, CPVille
et Pays
Nom du classeur Excel --> Import données Access dans XL.xls
Feuille de calcul Excel recevant les données --> Données
La requête SQL utilisée --> SELECT ListeClients.* FROM ListeClients
(Ce qui correspond à l'extraction de tous les enregistrements de la
table ListeClients)
Sub ImporteDataAccess()
Dim rsData As ADODB.Recordset
Dim szConnect As String
Dim szSQL As String
Dim intColIndex As Integer
Application.ScreenUpdating = False
PathMyApplication = ActiveWorkbook.Path & ""
Set TargetRange = ActiveWorkbook.Sheets( "Données" ).Cells( 1 , 1 )
Et le pire, c'est que mes importations fonctionnent correctement avec les tables... Mais avec les requêtes: non!
Pfff
Mince, peut-être la version d'access, la location de la base ou du classeur ....
Vous pouvez visionner la macro originale ici sur http://ericrenaud.free.fr/daoado.htm (utilisez le trigger sur la partie gauche, partie ADO).
Un copier-coller de la procédure qui m'a bien aidée
Bon courage
Définition des éléments utilisés : Nom de la base de données --> Clients.mdb Table contenant les données à exporter vers Excel --> ListeClients Champs de la table ListeClients --> Client, Rue, Adresse, CPVille et Pays Nom du classeur Excel --> Import données Access dans XL.xls Feuille de calcul Excel recevant les données --> Données La requête SQL utilisée --> SELECT ListeClients.* FROM ListeClients (Ce qui correspond à l'extraction de tous les enregistrements de la table ListeClients)
Sub ImporteDataAccess()
Dim rsData As ADODB.Recordset
Dim szConnect As String
Dim szSQL As String
Dim intColIndex As Integer
Application.ScreenUpdating = False
PathMyApplication = ActiveWorkbook.Path & ""
Set TargetRange = ActiveWorkbook.Sheets( "Données" ).Cells( 1 , 1 )