OVH Cloud OVH Cloud

Requete INSERT sur BDD Acces Avec Excel

4 réponses
Avatar
Emcy
Avec Excel, j'execute la requete suivante en vba sur une BDD Acces
=> INSERT INTO MaTable VALUES ('valeur1','valeur2',...)

si le premier element (clef primaire) existe déja dans la BDD, normlement je
devrais avoir un message d'erreur : mais ce n'est pas le cas, pourquoi (rien
ne se passe : aucuns elements n'est ajoutés/modifié) ?
par contre si l'element de la clef primaire n'existe pas, alors tout
fonctionne normalement mes elements sont ajoutés.

D'ou vient le probleme ?

4 réponses

Avatar
Pierre Fauconnier
Bonjour

Peux-tu donner le code utilisé? Avec ADO, il y a le même message d'erreur
que si tu effectuais la requête dans Excel...


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Emcy" a écrit dans le message de news:

Avec Excel, j'execute la requete suivante en vba sur une BDD Acces
=> INSERT INTO MaTable VALUES ('valeur1','valeur2',...)

si le premier element (clef primaire) existe déja dans la BDD, normlement
je devrais avoir un message d'erreur : mais ce n'est pas le cas, pourquoi
(rien ne se passe : aucuns elements n'est ajoutés/modifié) ?
par contre si l'element de la clef primaire n'existe pas, alors tout
fonctionne normalement mes elements sont ajoutés.

D'ou vient le probleme ?



Avatar
Emcy
Je programme en DAO :
Set ObjBDD = DBEngine.OpenDatabase(StrBDD, False, False, "MS Access;PWD=" &
StrMotDePasse)
StrRequete = "INSERT INTO MaTable VALUES ('valeur1','valeur2',...)"
ObjBDD.Execute (StrRequete)

"Pierre Fauconnier" a écrit dans le
message de news: ez%
Bonjour

Peux-tu donner le code utilisé? Avec ADO, il y a le même message d'erreur
que si tu effectuais la requête dans Excel...


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Emcy" a écrit dans le message de news:

Avec Excel, j'execute la requete suivante en vba sur une BDD Acces
=> INSERT INTO MaTable VALUES ('valeur1','valeur2',...)

si le premier element (clef primaire) existe déja dans la BDD, normlement
je devrais avoir un message d'erreur : mais ce n'est pas le cas, pourquoi
(rien ne se passe : aucuns elements n'est ajoutés/modifié) ?
par contre si l'element de la clef primaire n'existe pas, alors tout
fonctionne normalement mes elements sont ajoutés.

D'ou vient le probleme ?







Avatar
Pierre Fauconnier
Utilise l'option dbFailOnError comme dans l'exemple ci-dessous, et gère les
erreurs avec On error goto

...
...
On Error GoTo Erreurs
MaBase.Execute "insert into table1 (prenom) values('Pierre')",
dbFailOnError
...
...
Erreurs:
Select Case Err
Case 3022
MsgBox "Doublon dans la base de données. L'ajout n'a pas pu être
effectué", _
vbOKOnly + vbExclamation, "Erreur de base de donnée"
End Select
End Sub


Cela convient-il?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci


"Emcy" a écrit dans le message de news:

Je programme en DAO :
Set ObjBDD = DBEngine.OpenDatabase(StrBDD, False, False, "MS Access;PWD="
& StrMotDePasse)
StrRequete = "INSERT INTO MaTable VALUES ('valeur1','valeur2',...)"
ObjBDD.Execute (StrRequete)

"Pierre Fauconnier" a écrit dans le
message de news: ez%
Bonjour

Peux-tu donner le code utilisé? Avec ADO, il y a le même message d'erreur
que si tu effectuais la requête dans Excel...


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Emcy" a écrit dans le message de news:

Avec Excel, j'execute la requete suivante en vba sur une BDD Acces
=> INSERT INTO MaTable VALUES ('valeur1','valeur2',...)

si le premier element (clef primaire) existe déja dans la BDD,
normlement je devrais avoir un message d'erreur : mais ce n'est pas le
cas, pourquoi (rien ne se passe : aucuns elements n'est ajoutés/modifié)
?
par contre si l'element de la clef primaire n'existe pas, alors tout
fonctionne normalement mes elements sont ajoutés.

D'ou vient le probleme ?











Avatar
Emcy
Parfait.
Merci

"Pierre Fauconnier" a écrit dans le
message de news: e%
Utilise l'option dbFailOnError comme dans l'exemple ci-dessous, et gère
les erreurs avec On error goto

...
...
On Error GoTo Erreurs
MaBase.Execute "insert into table1 (prenom) values('Pierre')",
dbFailOnError
...
...
Erreurs:
Select Case Err
Case 3022
MsgBox "Doublon dans la base de données. L'ajout n'a pas pu
être effectué", _
vbOKOnly + vbExclamation, "Erreur de base de donnée"
End Select
End Sub


Cela convient-il?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci


"Emcy" a écrit dans le message de news:

Je programme en DAO :
Set ObjBDD = DBEngine.OpenDatabase(StrBDD, False, False, "MS Access;PWD="
& StrMotDePasse)
StrRequete = "INSERT INTO MaTable VALUES ('valeur1','valeur2',...)"
ObjBDD.Execute (StrRequete)

"Pierre Fauconnier" a écrit dans le
message de news: ez%
Bonjour

Peux-tu donner le code utilisé? Avec ADO, il y a le même message
d'erreur que si tu effectuais la requête dans Excel...


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Emcy" a écrit dans le message de news:

Avec Excel, j'execute la requete suivante en vba sur une BDD Acces
=> INSERT INTO MaTable VALUES ('valeur1','valeur2',...)

si le premier element (clef primaire) existe déja dans la BDD,
normlement je devrais avoir un message d'erreur : mais ce n'est pas le
cas, pourquoi (rien ne se passe : aucuns elements n'est
ajoutés/modifié) ?
par contre si l'element de la clef primaire n'existe pas, alors tout
fonctionne normalement mes elements sont ajoutés.

D'ou vient le probleme ?