Importer Table Access dans une feuille

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
 
J

Jacky

Guest
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
 

MichelXld

XLDnaute Barbatruc
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
 

MichelXld

XLDnaute Barbatruc
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
 

Discussions similaires

Statistiques des forums

Discussions
312 438
Messages
2 088 406
Membres
103 842
dernier inscrit
ho9999