Ma requête insert into fonctionne de façon aléatoire
4 réponses
BV
Bonjour =E0 tous
J'ai une BDD sous 2003. J'ai cr=E9e un formulaire qui me permet d'ajouter
des donn=E9es =E0 partir de listes d=E9roulantes li=E9es et d'autres champs=
ind=E9pendants. Je fais ensuite une requ=EAte d'ajout qui malheureusement =
fonctionne al=E9atoirement.
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
Gloops
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.
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 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.
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.
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
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.
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.
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.