J'ai un fichier excel qui porte le nom=20
"C:\Mes documents\caisse pop access.xls"=20
j'aimerais exporter par une macro ce ficher=20
dans une base de donn=E9e access.
Cette base de donn=E9e porte le nom=20
"C:\Mes documents\base de donn=E9e\caisse pop.mdb=20
Le nom de la table qui doit recevoir le fichier excel=20
porte le nom : caisse populaire.
Avec les assistants je suis capable d'exporter le fichier=20
et tout fonctionne bien. Je cherche donc le code qui va me=20
permettre de faire le transfert du fichier de fa=E7on=20
automatique.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Denis Michon
Bonjour Jacques,
Voici un exemple de Macro qui est écris dans un module standard d'excel et qui va copier les données de la feuille active vers une base de données .mdb. À la lecture du code tu comprendras qu'il faut modifier, le nom des objets(chemin, nom de la base de données, le nom des champs de ta table de données....etc..) par le vrai nom des choses de ton projet.
Tu dois ajouter la bibliothèque "Microsoft Activex Data Objects 2.0 librairy" à ton projet excel.
Attention, Access est très susceptible... si le type de données d'un champ de ton tableau d'excel ne correspond pas au type de données du champ que tu as défini dans ta table access, ou, si dans ta table access, il est défini qu'un champ spécifique ne peut être vide... son champ équivalent de la table excel ne peut être vide sinon... access va s'étouffer !!! ... (plantage assuré !)
'--------------------- Sub ADOFromExcelToAccess()
Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long ' connect to the Access database
Set cn = New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & _ "Data Source=C:FolderNameDataBaseName.mdb;" ' open a recordset
Set rs = New ADODB.Recordset rs.Open "TableName", cn, adOpenKeyset, adLockOptimistic, adCmdTable ' all records in a table
r = 3 ' the start row in the worksheet
Do While Len(Range("A" & r).Formula) > 0 ' repeat until first empty cell in column A With rs .AddNew ' create a new record ' add values to each field in the record .Fields("FieldName1") = Range("A" & r).Value .Fields("FieldName2") = Range("B" & r).Value .Fields("FieldNameN") = Range("C" & r).Value ' add more fields if necessary... .Update ' stores the new record End With r = r + 1 ' next row Loop rs.Close Set rs = Nothing cn.Close Set cn = Nothing End Sub '---------------------
Salutations!
"jacques" a écrit dans le message de news:015901c3ae05$48484070$ Bonjour à vous tous.
J'ai un fichier excel qui porte le nom "C:Mes documentscaisse pop access.xls" j'aimerais exporter par une macro ce ficher dans une base de donnée access.
Cette base de donnée porte le nom "C:Mes documentsbase de donnéecaisse pop.mdb
Le nom de la table qui doit recevoir le fichier excel porte le nom : caisse populaire.
Avec les assistants je suis capable d'exporter le fichier et tout fonctionne bien. Je cherche donc le code qui va me permettre de faire le transfert du fichier de façon automatique.
Merci.
Bonjour Jacques,
Voici un exemple de Macro qui est écris dans un module standard d'excel et qui va copier les données de la feuille
active vers une base de données .mdb. À la lecture du code tu comprendras qu'il faut modifier, le nom des objets(chemin,
nom de la base de données, le nom des champs de ta table de données....etc..) par le vrai nom des choses de ton projet.
Tu dois ajouter la bibliothèque "Microsoft Activex Data Objects 2.0 librairy" à ton projet excel.
Attention, Access est très susceptible... si le type de données d'un champ de ton tableau d'excel ne correspond pas au
type de données du champ que tu as défini dans ta table access, ou, si dans ta table access, il est défini qu'un champ
spécifique ne peut être vide... son champ équivalent de la table excel ne peut être vide sinon... access va s'étouffer
!!! ... (plantage assuré !)
'---------------------
Sub ADOFromExcelToAccess()
Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long
' connect to the Access database
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & _
"Data Source=C:FolderNameDataBaseName.mdb;"
' open a recordset
Set rs = New ADODB.Recordset
rs.Open "TableName", cn, adOpenKeyset, adLockOptimistic, adCmdTable
' all records in a table
r = 3 ' the start row in the worksheet
Do While Len(Range("A" & r).Formula) > 0
' repeat until first empty cell in column A
With rs
.AddNew ' create a new record
' add values to each field in the record
.Fields("FieldName1") = Range("A" & r).Value
.Fields("FieldName2") = Range("B" & r).Value
.Fields("FieldNameN") = Range("C" & r).Value
' add more fields if necessary...
.Update ' stores the new record
End With
r = r + 1 ' next row
Loop
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
'---------------------
Salutations!
"jacques" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:015901c3ae05$48484070$a401280a@phx.gbl...
Bonjour à vous tous.
J'ai un fichier excel qui porte le nom
"C:Mes documentscaisse pop access.xls"
j'aimerais exporter par une macro ce ficher
dans une base de donnée access.
Cette base de donnée porte le nom
"C:Mes documentsbase de donnéecaisse pop.mdb
Le nom de la table qui doit recevoir le fichier excel
porte le nom : caisse populaire.
Avec les assistants je suis capable d'exporter le fichier
et tout fonctionne bien. Je cherche donc le code qui va me
permettre de faire le transfert du fichier de façon
automatique.
Voici un exemple de Macro qui est écris dans un module standard d'excel et qui va copier les données de la feuille active vers une base de données .mdb. À la lecture du code tu comprendras qu'il faut modifier, le nom des objets(chemin, nom de la base de données, le nom des champs de ta table de données....etc..) par le vrai nom des choses de ton projet.
Tu dois ajouter la bibliothèque "Microsoft Activex Data Objects 2.0 librairy" à ton projet excel.
Attention, Access est très susceptible... si le type de données d'un champ de ton tableau d'excel ne correspond pas au type de données du champ que tu as défini dans ta table access, ou, si dans ta table access, il est défini qu'un champ spécifique ne peut être vide... son champ équivalent de la table excel ne peut être vide sinon... access va s'étouffer !!! ... (plantage assuré !)
'--------------------- Sub ADOFromExcelToAccess()
Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long ' connect to the Access database
Set cn = New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & _ "Data Source=C:FolderNameDataBaseName.mdb;" ' open a recordset
Set rs = New ADODB.Recordset rs.Open "TableName", cn, adOpenKeyset, adLockOptimistic, adCmdTable ' all records in a table
r = 3 ' the start row in the worksheet
Do While Len(Range("A" & r).Formula) > 0 ' repeat until first empty cell in column A With rs .AddNew ' create a new record ' add values to each field in the record .Fields("FieldName1") = Range("A" & r).Value .Fields("FieldName2") = Range("B" & r).Value .Fields("FieldNameN") = Range("C" & r).Value ' add more fields if necessary... .Update ' stores the new record End With r = r + 1 ' next row Loop rs.Close Set rs = Nothing cn.Close Set cn = Nothing End Sub '---------------------
Salutations!
"jacques" a écrit dans le message de news:015901c3ae05$48484070$ Bonjour à vous tous.
J'ai un fichier excel qui porte le nom "C:Mes documentscaisse pop access.xls" j'aimerais exporter par une macro ce ficher dans une base de donnée access.
Cette base de donnée porte le nom "C:Mes documentsbase de donnéecaisse pop.mdb
Le nom de la table qui doit recevoir le fichier excel porte le nom : caisse populaire.
Avec les assistants je suis capable d'exporter le fichier et tout fonctionne bien. Je cherche donc le code qui va me permettre de faire le transfert du fichier de façon automatique.
Merci.
jacques
J'ai inscrit le code suivant et à la première ligne elle me donne un erreur de compilation type non défini
Sub trancpop() Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long ' connect to the Access database
Set cn = New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & _ "Data Source=C:Mes documentsbase de donnéecaisse pop.mdb;" ' open a recordset
Set rs = New ADODB.Recordset rs.Open "caisse populaire", cn, adOpenKeyset, adLockOptimistic, adCmdTable ' all records in a table
r = 3 ' the start row in the worksheet
Do While Len(Range("A" & r).Formula) > 0 ' repeat until first empty cell in column A With rs .AddNew ' create a new record ' add values to each field in the record .Fields("datjr") = Range("A" & r).Value .Fields("datcp") = Range("B" & r).Value .Fields("descp") = Range("C" & r).Value .Fields("nochcp") = Range("d" & r).Value .Fields("dtcp") = Range("e" & r).Value .Fields("ctcp") = Range("f" & r).Value
' add more fields if necessary... .Update ' stores the new record End With r = r + 1 ' next row Loop rs.Close Set rs = Nothing cn.Close Set cn = Nothing End Sub
J'ai inscrit le code suivant et à la première
ligne elle me donne un erreur de compilation
type non défini
Sub trancpop()
Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As
Long
' connect to the Access database
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & _
"Data Source=C:Mes documentsbase de
donnéecaisse pop.mdb;"
' open a recordset
Set rs = New ADODB.Recordset
rs.Open "caisse populaire", cn, adOpenKeyset,
adLockOptimistic, adCmdTable
' all records in a table
r = 3 ' the start row in the worksheet
Do While Len(Range("A" & r).Formula) > 0
' repeat until first empty cell in column A
With rs
.AddNew ' create a new record
' add values to each field in the record
.Fields("datjr") = Range("A" & r).Value
.Fields("datcp") = Range("B" & r).Value
.Fields("descp") = Range("C" & r).Value
.Fields("nochcp") = Range("d" & r).Value
.Fields("dtcp") = Range("e" & r).Value
.Fields("ctcp") = Range("f" & r).Value
' add more fields if necessary...
.Update ' stores the new record
End With
r = r + 1 ' next row
Loop
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
J'ai inscrit le code suivant et à la première ligne elle me donne un erreur de compilation type non défini
Sub trancpop() Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long ' connect to the Access database
Set cn = New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & _ "Data Source=C:Mes documentsbase de donnéecaisse pop.mdb;" ' open a recordset
Set rs = New ADODB.Recordset rs.Open "caisse populaire", cn, adOpenKeyset, adLockOptimistic, adCmdTable ' all records in a table
r = 3 ' the start row in the worksheet
Do While Len(Range("A" & r).Formula) > 0 ' repeat until first empty cell in column A With rs .AddNew ' create a new record ' add values to each field in the record .Fields("datjr") = Range("A" & r).Value .Fields("datcp") = Range("B" & r).Value .Fields("descp") = Range("C" & r).Value .Fields("nochcp") = Range("d" & r).Value .Fields("dtcp") = Range("e" & r).Value .Fields("ctcp") = Range("f" & r).Value
' add more fields if necessary... .Update ' stores the new record End With r = r + 1 ' next row Loop rs.Close Set rs = Nothing cn.Close Set cn = Nothing End Sub
Denis Michon
Bonjour Jacques,
Tu as bien lu le texte de ma réponse :
Tu dois ajouter la bibliothèque "Microsoft Activex Data Objects 2.0 librairy" à ton projet excel.
L'as-tu fait ?
Salutations!
"jacques" a écrit dans le message de news:038b01c3ae1a$13302190$ J'ai inscrit le code suivant et à la première ligne elle me donne un erreur de compilation type non défini
Sub trancpop() Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long ' connect to the Access database
Set cn = New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & _ "Data Source=C:Mes documentsbase de donnéecaisse pop.mdb;" ' open a recordset
Set rs = New ADODB.Recordset rs.Open "caisse populaire", cn, adOpenKeyset, adLockOptimistic, adCmdTable ' all records in a table
r = 3 ' the start row in the worksheet
Do While Len(Range("A" & r).Formula) > 0 ' repeat until first empty cell in column A With rs .AddNew ' create a new record ' add values to each field in the record .Fields("datjr") = Range("A" & r).Value .Fields("datcp") = Range("B" & r).Value .Fields("descp") = Range("C" & r).Value .Fields("nochcp") = Range("d" & r).Value .Fields("dtcp") = Range("e" & r).Value .Fields("ctcp") = Range("f" & r).Value
' add more fields if necessary... .Update ' stores the new record End With r = r + 1 ' next row Loop rs.Close Set rs = Nothing cn.Close Set cn = Nothing End Sub
Bonjour Jacques,
Tu as bien lu le texte de ma réponse :
Tu dois ajouter la bibliothèque "Microsoft Activex Data Objects 2.0 librairy" à ton projet excel.
L'as-tu fait ?
Salutations!
"jacques" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:038b01c3ae1a$13302190$a401280a@phx.gbl...
J'ai inscrit le code suivant et à la première
ligne elle me donne un erreur de compilation
type non défini
Sub trancpop()
Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As
Long
' connect to the Access database
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & _
"Data Source=C:Mes documentsbase de
donnéecaisse pop.mdb;"
' open a recordset
Set rs = New ADODB.Recordset
rs.Open "caisse populaire", cn, adOpenKeyset,
adLockOptimistic, adCmdTable
' all records in a table
r = 3 ' the start row in the worksheet
Do While Len(Range("A" & r).Formula) > 0
' repeat until first empty cell in column A
With rs
.AddNew ' create a new record
' add values to each field in the record
.Fields("datjr") = Range("A" & r).Value
.Fields("datcp") = Range("B" & r).Value
.Fields("descp") = Range("C" & r).Value
.Fields("nochcp") = Range("d" & r).Value
.Fields("dtcp") = Range("e" & r).Value
.Fields("ctcp") = Range("f" & r).Value
' add more fields if necessary...
.Update ' stores the new record
End With
r = r + 1 ' next row
Loop
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
Tu dois ajouter la bibliothèque "Microsoft Activex Data Objects 2.0 librairy" à ton projet excel.
L'as-tu fait ?
Salutations!
"jacques" a écrit dans le message de news:038b01c3ae1a$13302190$ J'ai inscrit le code suivant et à la première ligne elle me donne un erreur de compilation type non défini
Sub trancpop() Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long ' connect to the Access database
Set cn = New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & _ "Data Source=C:Mes documentsbase de donnéecaisse pop.mdb;" ' open a recordset
Set rs = New ADODB.Recordset rs.Open "caisse populaire", cn, adOpenKeyset, adLockOptimistic, adCmdTable ' all records in a table
r = 3 ' the start row in the worksheet
Do While Len(Range("A" & r).Formula) > 0 ' repeat until first empty cell in column A With rs .AddNew ' create a new record ' add values to each field in the record .Fields("datjr") = Range("A" & r).Value .Fields("datcp") = Range("B" & r).Value .Fields("descp") = Range("C" & r).Value .Fields("nochcp") = Range("d" & r).Value .Fields("dtcp") = Range("e" & r).Value .Fields("ctcp") = Range("f" & r).Value
' add more fields if necessary... .Update ' stores the new record End With r = r + 1 ' next row Loop rs.Close Set rs = Nothing cn.Close Set cn = Nothing End Sub