Bonjour,
je rencontre un problème avec un formulaire avec plusieurs champs liés par DataBinding, plus précisément avec des champs textes qui récupèrent des données de type date depuis un DataSet alimenté par une table SQL Server 2000.
Dans la table SQL aussi bien que dans la DataTable du DataSet, tous mes champs de type Date sont des smalldatetime qui peuvent être nulles (et qui le sont par défaut, sauf un champ qui est obligatoirement renseigné lors de l'extraction des données par la commande Select).
Par défaut donc, lorsque je charge ma BindingSource, et mon BindingNavigator, mon formulaire contient tous les enregistrements de ma Sélection, les textbox destinés à accueillir les dates sont à vide (la plupart des datas sont à null, et pas seulement de type date). Je peux naviguer dedans, et changer les données, etc.
Mieux même quand je veux saisir une date dans un textbox prévu à cet effet, le databinding effectue un contrôle et ne laisse sortir du textbox que si une date valide à été saisie !
Mais cet avantage présente un problème grave à mes yeux : si je rentre dans le champ (en cliquant dedans, ou par tabulation), et que j'en ressors sans rien faire, ok rien ne se passe.
En revanche, si j'ai le malheur d'appuyer sur une touche par erreur qui commence une saisie, même si je supprime ce que j'ai saisi par erreur, je suis obligé de saisir une date valide pour pouvoir sortir du focus sur le textbox en question. C'est grave d'un point de vue ergonomie ET du contenu des données !
Actuellement mes txtbox sont liés de cette manière
txtDateDernierAvis.DataBindings.Add("Text", bsFactures, "DATE_DERNIER_AVIS", True, DataSourceUpdateMode.OnValidation)
J'ai essayé cette autre option :
txtDateDernierAvis.DataBindings.Add("Text", bsFactures, "DATE_DERNIER_AVIS", False, DataSourceUpdateMode.OnValidation)
Mais du coup je suis embetté car il m'affiche l'heure et les minutes (mes datas sont en smalldatetime SQL), et de plus si je tape pas exactement une date du type jj/mm/aa (ou jj/mm/aaaa), la saisie effectuée est effacée sans demander son reste.
Bref c'est tout ou rien...
Quelqu'un aurait-il une autre solution à me proposer, et le cas échéant, pour l'option 2 à False, est-il possible de transformer le txtbox pour qu'il n'affiche plus les heures et minutes?
Un grand merci de m'avoir lu jusque là
----------------------------------------------------------------------------------
Pourquoi faire simple quand on peut faire compliqué?????That is the question