Importer Table Access dans une feuille

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

FaridP

XLDnaute Occasionnel
Bonjour à tous et à Toutes,

Magré mes recherches, je ne trouve pas le Code qui me permettra d'importer une table Access dans une feuille de calcul, quelqu'un le connait-il car là, j'avoue que je pète un cable.

A bientôt et Merci à Tous
Farid
 
Voila un exemple de code qui te transposera les données de la table1 du fichier original.mdb (fichier access) situé sur une disquette (A:\\)

With ActiveSheet.QueryTables.Add(Connection:= _
'ODBC;DSN=MS Access Database;DBQ=A:\\original.mdb';DefaultDir=A:;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;' _
, Destination:=ActiveSheet.Range('A1'))
.Sql = Array( _
'SELECT table1.champ1, table1.champ2, table1.champ3' & 'FROM `A:\\original.mdb
.FieldNames = True
.RefreshStyle = xlInsertDeleteCells
.RowNumbers = False
.FillAdjacentFormulas = False
.RefreshOnFileOpen = False
.HasAutoFormat = True
.BackgroundQuery = True
.TablesOnlyFromHTML = True
.Refresh BackgroundQuery:=False
.SavePassword = True
.SaveData = True
End With

remarque, ces données seront écrites sur la feuille active d'excel et situées à partir de la cellule A1, de plus les noms de champ seront également transcrits

Bon courage
 
bonsoir

tu peux tester cette procedure pour importer une table Access ('Table1') dans une feuille Excel

la procedure necessite d'activer la reference Microsoft ActiveX Data Objects x.x Library
dans l'editeur de macro
Menu Outils
References
coches la ligne 'Microsoft ActiveX Data Objects x.x Library'
Cliques sur OK pour valider


Sub ImportTableAccess()
Dim Cn As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim Fichier As String

Fichier = 'C:\\\\\\\\MaBase_V01.mdb'

Set Cn = New ADODB.Connection
Cn.Open 'Provider=Microsoft.Jet.OLEDB.4.0; Data Source=' & _
Fichier & ';'
Set Rs = New ADODB.Recordset

With Rs
.ActiveConnection = Cn
.Open 'SELECT * FROM Table1', , adOpenStatic, adLockOptimistic, adCmdText
End With

Feuil1.Range('A1').CopyFromRecordset Rs

Rs.Close
Set Rs = Nothing
Cn.Close
Set Cn = Nothing
End Sub




bonne soiree
MichelXld
 
bonjour Farid

dans ce cas tu peux tester cette adaptation


Sub ImportTableAccess_V02()
Dim Cn As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim Fld As ADODB.Field
Dim Fichier As String
Dim x As Integer

Fichier = 'C:\\\\\\\\MaBase_V01.mdb'

Set Cn = New ADODB.Connection
Cn.Open 'Provider=Microsoft.Jet.OLEDB.4.0; Data Source=' & _
Fichier & ';'
Set Rs = New ADODB.Recordset

With Rs
.ActiveConnection = Cn
.Open 'SELECT * FROM Table1', , adOpenStatic, adLockOptimistic, adCmdText
End With

For Each Fld In Rs.Fields
x = x + 1
Feuil1.Cells(1, x) = Fld.Name
Next Fld

Feuil1.Range('A2').CopyFromRecordset Rs

Rs.Close
Set Rs = Nothing
Cn.Close
Set Cn = Nothing
End Sub




bonne soiree
MichelXld

Message édité par: michelxld, à: 24/12/2005 16:40
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour