rouambab
Messages postés4Date d'inscriptionmercredi 30 mai 2007StatutMembreDernière intervention 3 juin 2007
-
30 mai 2007 à 23:57
rouambab
Messages postés4Date d'inscriptionmercredi 30 mai 2007StatutMembreDernière intervention 3 juin 2007
-
1 juin 2007 à 16:40
j'ai crée une base de donnée en acces et grâce à l'adodc je'effevtue des manipulations. en vb je fais des enregistrements, et parmis les données saisies, il la date à saisir dans le format jj/mm/aaaa. j'aimerais savoir comment tester le format de la date entrée par l'utilisateur avans d'effectuer l'enregistrement dans la table.
Toujours sur le même projet j'aimerais determiner si la donnée entrée est un entier. et comment on récupère un donnée se trouvant dans un listbox.
cavo789
Messages postés168Date d'inscriptionvendredi 9 janvier 2004StatutMembreDernière intervention28 juillet 20091 31 mai 2007 à 06:57
Comment se fait la saisie de la date ? Est-ce via une interface VB (avec Textbox) ou est-ce directement dans la table Access ? En Access, tu peux spécifier ce format directement au niveau du champs (dans le design de la table). En VB, je ne crois pas que cela soit directement possible. Il existe une propriété DataFormat (que je n'ai jamais utilisée) et qui semble le faire mais je présume qu'il faut d'abord lier le textbox à un champs de la table.
cs_Nicko11
Messages postés1141Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention19 septembre 20073 31 mai 2007 à 08:02
Salut,
1) Pourquoi ne pas définir la propriété format de ta textbox:
texte10.Format = "jj/mm/aaaa"
2) Une autre solution serait de remplacer la textbox par un maskedbox. Ce champ permet de mettre en place un marsque de saisie (voi propriété du champ). Le cas qui te corresponderait serait "99\99\9999"
Cela te permettra d'empecher la saisie de lettre et obligera a respecter le format. Par contre, il faudrait que tu vérifie si les nombres correspondant aux jour/mois/années ne sont pas farfelue (ex : 36/24/6430)
3) Sinon, une derniere consisterait a tester le format de cette maniere mais je ne suis pas certain que cela fonctionnerait:
if texte10 .Format = "jj/mm/aaaa" then ......
Pour ta 2eme question, j'ai cherché et je viens faire ca:
Public Sub test9()
Dim chiffre As Integer
If VarType(chiffre) = vbInteger Then
MsgBox "la variable chiffre est un entier"
End If
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 31 mai 2007 à 08:22
Bonjour,
Private Sub Command1_Click()
MsgBox IIf(IsDate(Text1.Text) And Val(Mid(Text1.Text, 4, 2)) < 13 _
And Text1.Text Like "##/##/####", "j'accepte", "je refuse")
End Sub
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 31 mai 2007 à 08:37
Bonjour Nicko,
Non, ce n'est pas la peine de tester si le jour est < 32 car isdate retournerait Faux si > 31
ce qui n'est pas le cas avec le mois, car VB est assez curieux...
Quelques soient les paramètres locaux, en effet, pour VB :
05/13/2000 serait accepté comme date 13 mai 2000 en dépit du fait que ta machine est en jj/mm/aaaa
mais VB refuserait tant 32/05/2000 que 05/32/2000
cs_Nicko11
Messages postés1141Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention19 septembre 20073 31 mai 2007 à 08:45
J'en étais sur, désolé alors, je me doutais que tu savais mieux gérer ca que moi donc je dois pas la meme logique que VB y faut croire. Merci de la précision, je le saurai pour l'avenir.
Sinon, ne me dis pas que je me suis planté aussi sur ca
If VarType(Nom_Variable) = vbInteger Then
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 31 mai 2007 à 08:52
Ta syntaxe est bonne en ce qui concerne la détermination du type de variable.
Je me suis donc abstenu de réagir (car c'était bien ainsi qu'était posée la question par 1075682 rouambab)
Je devine pourtant que =1075682 rouambab s'est mal exprimé et voulait dire autre chose....qu'il n'a pas su dire et que j'attends qu'il sache dire ...(il faut qu'il s'habitue à être très précis dans ses expressions )
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 31 mai 2007 à 09:48
Tu as partfaitement compris, Nicko, sois tranquille : c'est ce qu'a écrit notre ami et tu lui a donc parfaitement répondu
Je crains par contre que ce soit lui qui ne sait pas exprimer tout autre chose
Laisse-le venir on verra bien
rouambab
Messages postés4Date d'inscriptionmercredi 30 mai 2007StatutMembreDernière intervention 3 juin 2007 1 juin 2007 à 15:58
Merci à Nicko11 et jmfmarques. pour le teste des nombres entiers je veux juste m'assurer que la donnée saisie est bien une valeur entière avans d'effectuer l'enregistrement!
Pour ce qui est du teste de la date, je n'est pas la propriété .Format! J'aimerai pouvoir récuperer la donnée selectionnée dans un listbox, pour un enregistrement vesr un base de donnée? j'ai bien fait la connection adodc (commandtype,recordsource), et pour le contrôle listbox datasource et datafield sont corrctements remplis. Mais dans la table
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 1 juin 2007 à 16:07
Bonjour rouambad ,
Tu rigoles ou quoi ?
Je t'ai donné un code qui n'utilise pas la propriété Format, il me semble, malgré tout ce que je vien de boire !
Essaye le donc, pour voir ...
Private Sub Command1_Click()
MsgBox IIf(IsDate(Text1.Text) And Val(Mid(Text1.Text, 4, 2)) < 13 _
And Text1.Text Like "##/##/####", "j'accepte", "je refuse")
End Sub
Il est bien évident que tu fois cliquer sur un bouton de commande Command1 se trouvant sur un UserForm (sur lequel tu as une TextBox Text1... hein...)