Excel>acces

spaa05 Messages postés 148 Date d'inscription mardi 14 novembre 2000 Statut Membre Dernière intervention 26 juillet 2005 - 26 mai 2005 à 18:12
michelxld Messages postés 402 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 12 octobre 2008 - 28 mai 2005 à 20:56
bonjour
j'ai un claceur excel avec 4 colone est je ve le transporter vers une table acces
merci

1 réponse

michelxld Messages postés 402 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 12 octobre 2008 32
28 mai 2005 à 20:56
bonsoir

cet exemple permet de créer une nouvelle table dans une base Access et d'y exporter les donnees Excel

Option Explicit
Option Compare Text
'Ajouter une table dans une base de données Access
'*************************************************
Sub CreateTable()
'necessite d'activer la reference Microsoft ActiveX Data Objects 2.0 Library
'necessite d'activer la reference Microsoft ADO Ext. 2.5 for DDL and Security
Dim cat As New ADOX.Catalog
Dim tbl As New ADOX.Table
Dim Conn As New ADODB.Connection
Dim rsT As New ADODB.Recordset
Dim LoopRange As Range, CurrCell As Range
Dim maNouvelleTable As String


maNouvelleTable = "maTable"


With Conn
' Définition du fournisseur OleDB pour la connexion
.Provider = "Microsoft.JET.OLEDB.4.0"
' Ouverture d'une connexion
.Open ThisWorkbook.Path & "\MaBase_V01.mdb"
End With

' Définition de la connexion active pour l'objet Catalog
cat.ActiveConnection = Conn

With tbl
' Affection d'un nom à la nouvelle table
.Name = maNouvelleTable
' Affectation de noms et formats aux colonnes de la nouvelle table
With .Columns
.Append "Code"
.Append "Date", adDate
.Append "Valeurs", adInteger
.Append "leNom", adChar
End With
End With

' Ajout de la table
cat.Tables.Append tbl

With rsT
.ActiveConnection = Conn
' Ouverture de la nouvelle table. Pour pouvoir ajouter des
' enregistrements dans la table, l'argument Locktype de la
' méthode Open doit être défini à adLockOptimistic
.Open maNouvelleTable, LockType:=adLockOptimistic
End With

' Définition de la plage contenant les enregistrements à
' ajouter à la base de données
Set LoopRange = Feuil1.Range("A2:A" & Feuil1.Range("A2").End(xlDown).Row)


' Parcours des informations dans la feuille de calcul
For Each CurrCell In LoopRange
With rsT
' Ajout d'un nouvel enregistrement
.AddNew
' Ajout des informations dans les champs appropriés
.Fields("Code").Value = CurrCell
.Fields("Date").Value = CurrCell.Offset(0, 1)
.Fields("Valeurs").Value = CurrCell.Offset(0, 2)
.fiels("leNom").Value = CurrCell.Offset(0, 3)
' Écriture du nouvel enregistrement dans la base de données
.Update
End With
Next CurrCell

rsT.Close
Set tbl = Nothing
Set cat = Nothing
Conn.Close

MsgBox "Export terminé"

End Sub



bonne soiree
michel
0
Rejoignez-nous