Ma requête insert into fonctionne de façon aléatoire

Le
BV
Bonjour tous
J'ai une BDD sous 2003. J'ai cre un formulaire qui me permet d'ajouter
des donnes partir de listes droulantes lies et d'autres champs=
indpendants. Je fais ensuite une requte d'ajout qui malheureusement =
fonctionne alatoirement.

INSERT INTO T_HRSADMIN ( REF_ACI, REF_LIBELLE, [NUM_SEM(ADM)], [HRS_ETI(ADM=
)], [HRS_SAL(ADM)], [HRS_STAG(ADM)] )
VALUES (forms!F_SAISIETRAVAUX.form.LST_ACI, forms!F_SAISIETRAVAUX.form.LST_=
LIBELLE, forms!F_SAISIETRAVAUX.form.SEM, forms!F_SAISIETRAVAUX.form.ETIADMI=
N, forms!F_SAISIETRAVAUX.form.SALADMIN, forms!F_SAISIETRAVAUX.form.STAGADMI=
N);

Merci d'avance pour votre aide
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gloops
Le #24732012
BV a écrit, le 29/08/2012 10:01 :
Bonjour à tous
J'ai une BDD sous 2003. J'ai crée un formulaire qui me permet d'ajout er
des données à partir de listes déroulantes liées et d'autres ch amps indépendants. Je fais ensuite une requête d'ajout qui malheureus ement fonctionne aléatoirement.

INSERT INTO T_HRSADMIN ( REF_ACI, REF_LIBELLE, [NUM_SEM(ADM)], [HRS_ETI (ADM)], [HRS_SAL(ADM)], [HRS_STAG(ADM)] )
VALUES (forms!F_SAISIETRAVAUX.form.LST_ACI, forms!F_SAISIETRAVAUX.form. LST_LIBELLE, forms!F_SAISIETRAVAUX.form.SEM, forms!F_SAISIETRAVAUX.form.E TIADMIN, forms!F_SAISIETRAVAUX.form.SALADMIN, forms!F_SAISIETRAVAUX.form. STAGADMIN);

Merci d'avance pour votre aide




Bonjour,

Qu'en est-il des contraintes d'intégrité ?

Doublons, champs nuls alors que la définition de la table le leur
interdit, pareil pour les chaînes vides ...

Comment est faite la gestion d'erreur ?
BV
Le #24735382
Bonjour, merci pour vote réponse.
J'ai regardé la structure de la table, j'ai modifié les indexations
et les doublons, mais rien...

J'ai changé et j'ai forcé en sql :

chaineSql = "INSERT INTO T_HRSADMIN ( REF_ACI, REF_LIBELLE, [NUM_SEM(ADM) ], [HRS_ETI(ADM)], [HRS_SAL(ADM)], [HRS_STAG(ADM)] ) VALUES ("
chaineSql = chaineSql & c & " , '" & l & "' , '" & s & "' , '" & SAL & "' , '" & ETI & "', '" & STAG & "' )"

DoCmd.RunSQL (chaineSql)

et ça fonctionne impec !
Gloops
Le #24750132
BV a écrit, le 30/08/2012 09:28 :
Bonjour, merci pour vote réponse.
J'ai regardé la structure de la table, j'ai modifié les indexations
et les doublons, mais rien...

J'ai changé et j'ai forcé en sql :

chaineSql = "INSERT INTO T_HRSADMIN ( REF_ACI, REF_LIBELLE, [NUM_SEM( ADM)], [HRS_ETI(ADM)], [HRS_SAL(ADM)], [HRS_STAG(ADM)] ) VALUES ("
chaineSql = chaineSql & c & " , '" & l & "' , '" & s & "' , '" & SAL & "', '" & ETI & "', '" & STAG & "' )"

DoCmd.RunSQL (chaineSql)

et ça fonctionne impec !




En effet. Est-ce qu'il n'y aurait pas un On Error Resume Next, quelque
part ? Ou un DoCmd.SetWarnings False ?

Autrement je ne vois pas.
Gloops
Le #24750212
BV a écrit, le 30/08/2012 09:28 :
Bonjour, merci pour vote réponse.
J'ai regardé la structure de la table, j'ai modifié les indexations
et les doublons, mais rien...

J'ai changé et j'ai forcé en sql :

chaineSql = "INSERT INTO T_HRSADMIN ( REF_ACI, REF_LIBELLE, [NUM_SEM( ADM)], [HRS_ETI(ADM)], [HRS_SAL(ADM)], [HRS_STAG(ADM)] ) VALUES ("
chaineSql = chaineSql & c & " , '" & l & "' , '" & s & "' , '" & SAL & "', '" & ETI & "', '" & STAG & "' )"

DoCmd.RunSQL (chaineSql)

et ça fonctionne impec !




Ah oui, une façon d'avoir une réponse plus claire : afficher chaineSq l
dans la fenêtre d'exécution, et la recopier dans l'éditeur SQL,
exécuter. Si il y a une erreur, le message qui s'affiche là est souve nt
plus clair qu'au cours d'une exécution depuis VBA.
Publicité
Poster une réponse
Anonyme