Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Alimenter une table ACCESS avec Excel

2 réponses
Avatar
Gérard BOULAY
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

2 réponses

Avatar
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



Avatar
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