Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Jabberwock

Guest
Tout dépend de comment tu veux voir ta table.

Tu peux l'exporter d'acces au format xls.

Tu peux (sous Excel) aller dans Données->Données Externes->Importer des données

Tu peux utiliser DAO.
 
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
 

FaridP

XLDnaute Occasionnel
Un Très Très Grnad MErci à Toi Michel.
C'est énome, c'est exactement ce qu'il me faut.

Puis-je me permettre d'exagérer afin d'importer également le nom des champs ?

Encore Mille Fois Merci pour ton Aide
A biientôt
Farid
 

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…