spaa05
Messages postés148Date d'inscriptionmardi 14 novembre 2000StatutMembreDernière intervention26 juillet 2005
-
26 mai 2005 à 18:12
michelxld
Messages postés402Date d'inscriptionvendredi 6 août 2004StatutMembreDernière intervention12 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
michelxld
Messages postés402Date d'inscriptionvendredi 6 août 2004StatutMembreDernière intervention12 octobre 200832 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