Bonjour,
Je me retrouve confrontée a un probleme qui me laisse completement perplexe.
J'ai une table en SQL 2000. Cette table est principalement alimentée automatiquement mais un humain doit rajouter quelques données
J'ai donc fait un acces un petit formulaire en faisant une table liée (l'idée était que quand on mettrait quelque chose dans mon formulaire, ca irait se mettre dans ma table. Access me fournissant juste une petite interface conviviale pour l'encodeur)
le formulaire se base sur une query qui vérifie si un des 4 champs a completer par un humain est encore nul. Pour que tant que tout n'est pas completé, ca apparaisse dans le formulaire et que ca soit masqué ensuite (histoire que l'encodeur ne doivent pas commencer par passer plein de données déja completes)
J'avais fait les tests, tout semblait marcher correctement.
On a donc mit en prod le mois passé.
Ce mois ci je vais vérifier si tout va bien, et je constate que pour une raison qui m'échappe completement, les enregistrements du mois passés apparaissent encore (mais pas ceux de mes tests antiérieur)
La requete donne ca en sql
J'ai testé les 4 champs spéparément et les 4 posent problemes, ils sont tous considéré comme is null alors qu'a l'écran, je vois une valeur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT SALES_Nc_final.Creditnote_ID, SALES_Nc_final.Dpt, SALES_Nc_final.Date_creditnote, SALES_Nc_final.COM_SAV, SALES_Nc_final.Customer_ID, dbo_ADRES.adresnaam1, dbo_ADRES.localiteit, SALES_Nc_final.Invoice_ID, SALES_Nc_final.New_invoice_request, SALES_Nc_final.Retour, SALES_Nc_final.Raison, SALES_Nc_final.Explication, SALES_Nc_final.Creditnote_turnover FROM dbo_ADRES INNER JOIN SALES_Nc_final ON dbo_ADRES.adresnummer = SALES_Nc_final.Customer_ID WHERE (((SALES_Nc_final.New_invoice_request) Is Null)) OR (((SALES_Nc_final.Retour) Is Null)) OR (((SALES_Nc_final.Raison) Is Null)) OR (((SALES_Nc_final.Explication) Is Null)) ORDER BY SALES_Nc_final.Creditnote_ID;
J'ai la requete complémentaire qui permet de visusaliser dans un autre formulaire les données déja completée et celle du mois précédent sont bien dedans (alors que le critere est juste inverse, au lieu d'avoir 1 des 4 est nul, j'ai les 4 sont non nuls)
Comment est-ce que ces donnée que je vois a l'écran dans Acess et dans l'éditeur SQL peuvent etre a la fois dans la requete
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT SALES_Nc_final.Creditnote_ID, SALES_Nc_final.Dpt, SALES_Nc_final.Date_creditnote, SALES_Nc_final.COM_SAV, SALES_Nc_final.Customer_ID, dbo_ADRES.adresnaam1, dbo_ADRES.localiteit, SALES_Nc_final.Invoice_ID, SALES_Nc_final.New_invoice_request, SALES_Nc_final.Retour, SALES_Nc_final.Raison, SALES_Nc_final.Explication, SALES_Nc_final.Creditnote_turnover FROM dbo_ADRES INNER JOIN SALES_Nc_final ON dbo_ADRES.adresnummer = SALES_Nc_final.Customer_ID WHERE (((SALES_Nc_final.New_invoice_request) Is Not Null) AND ((SALES_Nc_final.Retour) Is Not Null) AND ((SALES_Nc_final.Raison) Is Not Null) AND ((SALES_Nc_final.Explication) Is Not Null)) ORDER BY SALES_Nc_final.Creditnote_ID;
Champ1 is null OR Champ2 is null OR Champ3 is null OR Champ4 is null
Et dans la requete
Champ1 is not null AND Champ2 is not null AND Champ3 is not null AND Champ4 is not null
De mon point de vue, si je vois quelqu'un chose dans le champ, ca devrait forcement etre non nul et du coup, je n'ai pas la moindre idée de ce qui peut bien se passer (d'autant que je n'ai pas eu le probleme pendant les tests)
Quelqu'un aurait la moindre idée de ce qui peut poser le probleme?
[Edit] et si je vais voir ma table directement en sql
Me fait apparaitre les données de septembre completées
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT * FROM SALES.Nc_final WHERE (Date_creditnote > CONVERT(DATETIME, '2009-08-31 00:00:00', 102)) AND (New_invoice_request IS NOT NULL)
alors que
me fait apparaitre la table vide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT * FROM SALES.Nc_final WHERE (Date_creditnote > CONVERT(DATETIME, '2009-08-31 00:00:00', 102)) AND (New_invoice_request IS NULL)
Comment c'est possible ca?
Partager