Comment écrire un programme VBA pour alimenter une table ACCESS à partir
d'une base Excel
et sans écraser les données déjà présentent dans la base ACCESS.
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
Didier Bicking
Plusieurs méthodes sont possibles. La plus simple consiste à travailler dans la base Access. Il faut d'abord attacher la table Excel, puis faire une requête d'ajout à partir de la table attachée dans la table Access.
Attention cependant à ne pas activer cette requête plusieurs fois car les données seraient ajoutées autant de fois, sauf si une clé primaire de la table Access permet de l'éviter.
-- Bon courage
Didier Bicking
http://perso.wanadoo.fr/dbicking
"Gérard BOULAY" a écrit dans le message de news: 43b5a784$0$29182$
Bonsoir,
Comment écrire un programme VBA pour alimenter une table ACCESS à partir d'une base Excel et sans écraser les données déjà présentent dans la base ACCESS.
Merci à ceux qui répondront
Et bonne année 2006
Plusieurs méthodes sont possibles. La plus simple consiste à travailler dans
la base Access. Il faut d'abord attacher la table Excel, puis faire une
requête d'ajout à partir de la table attachée dans la table Access.
Attention cependant à ne pas activer cette requête plusieurs fois car les
données seraient ajoutées autant de fois, sauf si une clé primaire de la
table Access permet de l'éviter.
"Gérard BOULAY" <16geboulay@wanadoo.fr> a écrit dans le message de news:
43b5a784$0$29182$8fcfb975@news.wanadoo.fr...
Bonsoir,
Comment écrire un programme VBA pour alimenter une table ACCESS à partir
d'une base Excel
et sans écraser les données déjà présentent dans la base ACCESS.
Plusieurs méthodes sont possibles. La plus simple consiste à travailler dans la base Access. Il faut d'abord attacher la table Excel, puis faire une requête d'ajout à partir de la table attachée dans la table Access.
Attention cependant à ne pas activer cette requête plusieurs fois car les données seraient ajoutées autant de fois, sauf si une clé primaire de la table Access permet de l'éviter.
-- Bon courage
Didier Bicking
http://perso.wanadoo.fr/dbicking
"Gérard BOULAY" a écrit dans le message de news: 43b5a784$0$29182$
Bonsoir,
Comment écrire un programme VBA pour alimenter une table ACCESS à partir d'une base Excel et sans écraser les données déjà présentent dans la base ACCESS.
Merci à ceux qui répondront
Et bonne année 2006
JB
Bonjour,
Voici un ex avec la méthode DAO
La table access Client contient: -Un champ nom_client -Un champ ville
La base Access.mdb doit exister et être dans le même répertoire
Sub ajout() 'Cocher DAO 3.6 dans Outils/Référence If Range("B3").Value <> "" Then Dim db As Database Dim rs As Recordset ChDir ActiveWorkbook.Path
Set db = OpenDatabase("access2000.mdb") Set rs = db.OpenRecordset("client") rs.AddNew ' Création enregistrement rs!nom_client = Range("B3").Value ' Transfert rs!ville = Range("B4").Value rs.Update ' Validation rs.Close Range("B3").Value = "" Range("B4").Value = "" Else MsgBox "Saisir un nom!" End If End Sub
Avec un formulaire:
Dim db As Database Dim dt As Recordset ChDir ActiveWorkbook.Path Set db = OpenDatabase("access2000.mdb") Set dt = db.OpenRecordset("client") If Me.nom_client = "" Then MsgBox "saisir un nom!" Exit Sub End If dt.AddNew dt!nom_client = Me.nom_client dt!ville = Me.ville dt.Update dt.Close db.Close
Cordialement JB
Bonjour,
Voici un ex avec la méthode DAO
La table access Client contient:
-Un champ nom_client
-Un champ ville
La base Access.mdb doit exister et être dans le même répertoire
Sub ajout()
'Cocher DAO 3.6 dans Outils/Référence
If Range("B3").Value <> "" Then
Dim db As Database
Dim rs As Recordset
ChDir ActiveWorkbook.Path
Set db = OpenDatabase("access2000.mdb")
Set rs = db.OpenRecordset("client")
rs.AddNew ' Création enregistrement
rs!nom_client = Range("B3").Value ' Transfert
rs!ville = Range("B4").Value
rs.Update ' Validation
rs.Close
Range("B3").Value = ""
Range("B4").Value = ""
Else
MsgBox "Saisir un nom!"
End If
End Sub
Avec un formulaire:
Dim db As Database
Dim dt As Recordset
ChDir ActiveWorkbook.Path
Set db = OpenDatabase("access2000.mdb")
Set dt = db.OpenRecordset("client")
If Me.nom_client = "" Then
MsgBox "saisir un nom!"
Exit Sub
End If
dt.AddNew
dt!nom_client = Me.nom_client
dt!ville = Me.ville
dt.Update
dt.Close
db.Close
La table access Client contient: -Un champ nom_client -Un champ ville
La base Access.mdb doit exister et être dans le même répertoire
Sub ajout() 'Cocher DAO 3.6 dans Outils/Référence If Range("B3").Value <> "" Then Dim db As Database Dim rs As Recordset ChDir ActiveWorkbook.Path
Set db = OpenDatabase("access2000.mdb") Set rs = db.OpenRecordset("client") rs.AddNew ' Création enregistrement rs!nom_client = Range("B3").Value ' Transfert rs!ville = Range("B4").Value rs.Update ' Validation rs.Close Range("B3").Value = "" Range("B4").Value = "" Else MsgBox "Saisir un nom!" End If End Sub
Avec un formulaire:
Dim db As Database Dim dt As Recordset ChDir ActiveWorkbook.Path Set db = OpenDatabase("access2000.mdb") Set dt = db.OpenRecordset("client") If Me.nom_client = "" Then MsgBox "saisir un nom!" Exit Sub End If dt.AddNew dt!nom_client = Me.nom_client dt!ville = Me.ville dt.Update dt.Close db.Close