RemyMM
Messages postés8Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention18 juin 2004
-
17 juin 2004 à 19:07
RemyMM
Messages postés8Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention18 juin 2004
-
21 juin 2004 à 07:44
J'ai une BD Acces 97 et je veux l'attaquer en VB !
J'ai créé un DSN via ODBC, et j'utilise une datagrid et un contrôle de données ADO.
J'ai défini une requête SQL pour remplir la datagrid (recordsource).
Le but est de modifier seulement les données, ça marche pour les valeurs existantes, mais pour les valeurs nulles, ça ne marche pas, toutes les valeurs sont modifiées, et j'ai un message d'erreur :
Information sur la colonne clé insuffisante ou incorrecte, trop de lignes sont affectées par la mise à jour.
Quand je ré-éxécute la requête, toutes les valeurs nulles ont été changées !!!!!!! et non pas seulement celle que j'avais sélectionné !!!!
Bien sûr, j'ai mis le champ d'index dans ma requête SQL ....
J'ai mis à jour ADO, et jet 4.0, j'ai MDAC 2.8 ...
Si quelqu'un peut m'aider, ça serait bien, sinon, je fais un formulaire en PHP :-)
baklouti3000
Messages postés4Date d'inscriptionvendredi 21 novembre 2003StatutMembreDernière intervention19 juin 2004 17 juin 2004 à 19:38
si tu as fait une requête aver un "group by" c'est logique, il suffit de mettre un "on error resume next". pour les valeurs nulles je crois que tu doit fair un teste.
RemyMM
Messages postés8Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention18 juin 2004 18 juin 2004 à 08:59
Voilà ma requête, c'est juste un sélect ....
"SELECT Personnel.[N°Personnel],Personnel.Nom, Personnel.Prénom, Personnel.Initiales, Personnel.[N° Poste 1], Personnel.[N° Poste 2], Personnel.localisation FROM Personnel WHERE (((Personnel.Nom)<>'') AND ((Personnel.Observation) Like '%Présent%')) ORDER BY Personnel.Nom ;"
En fait, je ne gère pas la mise à jour par code, l'objet datagrid et le contrôle data doivent faire ça tout seul .... (et d'ailleurs, ça marche pour les données non-nulles ...).
RemyMM
Messages postés8Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention18 juin 2004 18 juin 2004 à 13:12
Bon, fausse alerte, ça ne marche pas ....
En fait, j'ai un champ indexé sans doublons (le champs Initiales), quand j'ai une valeur dedans, ça marche.
Quand la valeur est NULL, et bien ça me remplace toutes les valeurs ayant un champ initiale ayant la valeur NULL par la nouvelle valeur, et quand je change un n° de tel dans un enregistrement ayant une valeur NULL dans le champ initiale, ça remplace toutes les valeurs.
Si je mets une valeur dans ce champ, je n'ai pas de problème, si je supprime la valeur du champ initiale, ça ne marche plus !!!
Le comportement semble être le suivant : on se base sur le champ indexé sans doublon Initiale au lieu de se baser sur le champ indexé sans doublon Personnel.[N°Personnel].
Comment forcer l'utilisation du champ N°Personnel ?
(Bien sur, j'aimerai garder le champ initiale sans doublon, et on ne peut pas le faire sans l'indexer ...)