La question : Est-ce que tu veux ajouter les données de ton tableau excel à une table déjà existante dans Access ?
Salutations!
"Abdel Oukili" a écrit dans le message de news: bonjour,
est-il possible de créer une base de données dans Excel, et ensuite d'exploiter cette base sous forme de table dans Access ?
Merci de votre réponse
michdenis
Bonjour Abdel Oukili,
voici 2 exemples :
Pour le temps que va durer l'exportation, on doit créer une plage de cellules "NOMMÉE" à exporter vers la base de données.
Cette plage nommée dans l'exemple s'appelle "Plage". La toute première ligne de la plage nommée "plage" représente une étiquette de colonne du même nom de champ de la table où les données seront exportées.
Dans l'exemple suivant, il ne te restera plus qu'à adapter le nom des objets selon ton application.
toto = Nom de la table dans la base de données Comptoir.mdb
Pour ce qui est du champ de numéro automatique dans ta base de données, il va se mettre à jour tout seul !
Attention, ce type de macro fonctionne, si on respecte les règles édictées de validation de la table réceptrice de la base de données access et le type de données défini pour chacun des champs dans access ...en correspondance avec les données dans le tableau excel.
Dans les 2 cas, la table dans access existe déjà !
Évidemment, tu dois ajouter la bibliothèque : Microsoft DAO 3.6 objects Librairy '-------------------------------------------- Sub ExporterVersAccess()
Dim bd As DAO.Database Dim Rst As DAO.Recordset
With Worksheets("Feuil1") .Range("B4:B" & .Range("B65536").End(xlUp).Row).Name = "Plage" End With
Set bd = OpenDatabase(ThisWorkbook.FullName, False, False, "excel 8.0")
bd.Execute "INSERT INTO toto IN 'C:ExcelComptoir.mdb' SELECT * FROM [Plage]" ThisWorkbook.Names("Plage").delete bd.Close Set bd = Nothing End Sub '--------------------------------------------
'------------------------------------ Sub AjouterDesEnregistrementsÀUneTable()
Dim MyDB As Database, MyTable As Recordset, Sh As Worksheet
Set MyDB = OpenDatabase("C:Mes documentsbd2.mdb") Set MyTable = MyDB.OpenRecordset("Etudiant") Set Sh = Worksheets("Feuil1")
With Sh For Each r In .Range("A1:C5").Rows With MyTable .AddNew !NumEtudiant = Sh.Cells(r.Row, 1) !NomEtudiant = Sh.Cells(r.Row, 2) !NumTel = Sh.Cells(r.Row, 3) .Update End With Next End With Set MyDB = Nothing: Set MyTable = Nothing: Set Sh = Nothing
End Sub '------------------------------------
Salutations!
"Abdel Oukili" a écrit dans le message de news: bonjour,
est-il possible de créer une base de données dans Excel, et ensuite d'exploiter cette base sous forme de table dans Access ?
Merci de votre réponse
Bonjour Abdel Oukili,
voici 2 exemples :
Pour le temps que va durer l'exportation, on doit créer une plage de cellules "NOMMÉE" à exporter vers la base de
données.
Cette plage nommée dans l'exemple s'appelle "Plage".
La toute première ligne de la plage nommée "plage" représente une étiquette de colonne du même nom de champ de la table
où les données seront exportées.
Dans l'exemple suivant, il ne te restera plus qu'à adapter le nom des objets selon ton application.
toto = Nom de la table dans la base de données Comptoir.mdb
Pour ce qui est du champ de numéro automatique dans ta base de données, il va se mettre à jour tout seul !
Attention, ce type de macro fonctionne, si on respecte les règles édictées de validation de la table réceptrice de la
base de données access et le type de données défini pour chacun des champs dans access ...en correspondance avec les
données dans le tableau excel.
Dans les 2 cas, la table dans access existe déjà !
Évidemment, tu dois ajouter la bibliothèque : Microsoft DAO 3.6 objects Librairy
'--------------------------------------------
Sub ExporterVersAccess()
Dim bd As DAO.Database
Dim Rst As DAO.Recordset
With Worksheets("Feuil1")
.Range("B4:B" & .Range("B65536").End(xlUp).Row).Name = "Plage"
End With
Set bd = OpenDatabase(ThisWorkbook.FullName, False, False, "excel 8.0")
bd.Execute "INSERT INTO toto IN 'C:ExcelComptoir.mdb' SELECT * FROM [Plage]"
ThisWorkbook.Names("Plage").delete
bd.Close
Set bd = Nothing
End Sub
'--------------------------------------------
'------------------------------------
Sub AjouterDesEnregistrementsÀUneTable()
Dim MyDB As Database, MyTable As Recordset, Sh As Worksheet
Set MyDB = OpenDatabase("C:Mes documentsbd2.mdb")
Set MyTable = MyDB.OpenRecordset("Etudiant")
Set Sh = Worksheets("Feuil1")
With Sh
For Each r In .Range("A1:C5").Rows
With MyTable
.AddNew
!NumEtudiant = Sh.Cells(r.Row, 1)
!NomEtudiant = Sh.Cells(r.Row, 2)
!NumTel = Sh.Cells(r.Row, 3)
.Update
End With
Next
End With
Set MyDB = Nothing: Set MyTable = Nothing: Set Sh = Nothing
End Sub
'------------------------------------
Salutations!
"Abdel Oukili" <oabdel@club-internet.fr> a écrit dans le message de news: eDMbYMu1EHA.2600@TK2MSFTNGP09.phx.gbl...
bonjour,
est-il possible de créer une base de données dans Excel, et ensuite
d'exploiter cette base sous forme de table dans Access ?
Pour le temps que va durer l'exportation, on doit créer une plage de cellules "NOMMÉE" à exporter vers la base de données.
Cette plage nommée dans l'exemple s'appelle "Plage". La toute première ligne de la plage nommée "plage" représente une étiquette de colonne du même nom de champ de la table où les données seront exportées.
Dans l'exemple suivant, il ne te restera plus qu'à adapter le nom des objets selon ton application.
toto = Nom de la table dans la base de données Comptoir.mdb
Pour ce qui est du champ de numéro automatique dans ta base de données, il va se mettre à jour tout seul !
Attention, ce type de macro fonctionne, si on respecte les règles édictées de validation de la table réceptrice de la base de données access et le type de données défini pour chacun des champs dans access ...en correspondance avec les données dans le tableau excel.
Dans les 2 cas, la table dans access existe déjà !
Évidemment, tu dois ajouter la bibliothèque : Microsoft DAO 3.6 objects Librairy '-------------------------------------------- Sub ExporterVersAccess()
Dim bd As DAO.Database Dim Rst As DAO.Recordset
With Worksheets("Feuil1") .Range("B4:B" & .Range("B65536").End(xlUp).Row).Name = "Plage" End With
Set bd = OpenDatabase(ThisWorkbook.FullName, False, False, "excel 8.0")
bd.Execute "INSERT INTO toto IN 'C:ExcelComptoir.mdb' SELECT * FROM [Plage]" ThisWorkbook.Names("Plage").delete bd.Close Set bd = Nothing End Sub '--------------------------------------------
'------------------------------------ Sub AjouterDesEnregistrementsÀUneTable()
Dim MyDB As Database, MyTable As Recordset, Sh As Worksheet
Set MyDB = OpenDatabase("C:Mes documentsbd2.mdb") Set MyTable = MyDB.OpenRecordset("Etudiant") Set Sh = Worksheets("Feuil1")
With Sh For Each r In .Range("A1:C5").Rows With MyTable .AddNew !NumEtudiant = Sh.Cells(r.Row, 1) !NomEtudiant = Sh.Cells(r.Row, 2) !NumTel = Sh.Cells(r.Row, 3) .Update End With Next End With Set MyDB = Nothing: Set MyTable = Nothing: Set Sh = Nothing
End Sub '------------------------------------
Salutations!
"Abdel Oukili" a écrit dans le message de news: bonjour,
est-il possible de créer une base de données dans Excel, et ensuite d'exploiter cette base sous forme de table dans Access ?