IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

test d'un champ de type "date abrégé"


Sujet :

Access

  1. #1
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 68
    Points : 40
    Points
    40
    Par défaut test d'un champ de type "date abrégé"
    Bonjours,

    J'ai un champ de text de type "date abrégé" dans mon formulaire et j'aimerais le tester.

    Résultat du test:

    - si le champ est correctement rempli, ne rien faire.
    - si le champ est vide, le renseigner avec "01/01/1001" (une valeur bidon).

    Je suis obligé de faire ce test, car le champ date fait partie de la clé primaire, donc si l'utilisateur ne le rempli pas, il affiche une erreur disant qu'une partie de la clé n'est pas renseignée.

    Merci d'avance pour vos réponses

  2. #2
    Membre actif Avatar de maxeur
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    416
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 416
    Points : 267
    Points
    267
    Par défaut
    Je viens d'avoir un peu le meme souci
    je te met le code que l'on m'a donné

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Not IsNull madate Then
    ...
    endif

  3. #3
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 68
    Points : 40
    Points
    40
    Par défaut
    ok, merci mais le champ "madate" correspond à quoi??

    je ne vois pas trop!!

  4. #4
    Membre actif Avatar de maxeur
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    416
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 416
    Points : 267
    Points
    267
    Par défaut
    cela correspond à la a la date que tu veux tester

    me!Madate

    le champ de ton formulaire en fait
    tu le fais before update et c'est bon ca devrait fonctionner

  5. #5
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 68
    Points : 40
    Points
    40
    Par défaut
    j'ai essayé de la façon suivante, mais sans résultat, la ligne du "If" contient un erreur et apparaît en rouge dans l'éditeur...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Form_BeforeUpdate(Cancel As Integer)
        'Déclaration des variables locales
        Dim DateFormulaire As Date
     
        'Initialisation de la variable date avec la valeur par défaut
        Set DateFormulaire = 1 / 1 / 1001
     
        'test de la validité du champ "date abrégé"
        If Not IsNull Forms![F_Saisie]![SF_Materiel]![SF_VendreMateriel]![VM_Date] Then
           '...
        End If
     
    End Sub
    Je ne trouve pas la faute..

  6. #6
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    la faute c'est que 1/1/1001 c'est
    1/ 1 / 1001 = 1 / 1001 = 9.99000999000999E-04

    si tu veux une date il faut ...
    #1/1/2001#

    Attention le type date compte les jours depuis le 30 décembre 1899 ...

    donc le 1/1/1001 = -328351
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  7. #7
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Je suis obligé de faire ce test, car le champ date fait partie de la clé primaire, donc si l'utilisateur ne le rempli pas, il affiche une erreur disant qu'une partie de la clé n'est pas renseignée.
    Ouh là... je vois là une grave erreur de conception.

    Tu ne peux pas affecter une valeur bidon à une clé primaire. La clé primaire d'un enregistrement est une valeur unique et non nulle. Etre contraint à lui donner une pseudo valeur signifie simplement que c'est une pseudo clé primaire. L'analyse a été loupée quelque part je craint

  8. #8
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 68
    Points : 40
    Points
    40
    Par défaut
    Oui, je comprend tout a fait l'erreur, cependant je vais m'expliquer un peu mieux:

    L'utilisateur doit enregistrer du matériel qui lui a été vendu par un fournisseur, seulement, l'utilisateur ne sais pas à quelle date ce matériel bien précis à été acheté!!

    Mais dans un autre cas, un matériel différent peut avoir été acheté plusieurs fois au même fournisseur, mais à des dates différentes...

    Me suis-je mieux exprimé??

    Je sais que c'est un peut bizzard

  9. #9
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Citation Envoyé par seurjer
    L'utilisateur doit enregistrer du matériel qui lui a été vendu par un fournisseur, seulement, l'utilisateur ne sais pas à quelle date ce matériel bien précis à été acheté!!
    Tu peux prendre la date de démarrage de ton exercice comme date référence de toutes opération antérieure

    Citation Envoyé par seurjer
    Mais dans un autre cas, un matériel différent peut avoir été acheté plusieurs fois au même fournisseur, mais à des dates différentes...
    Donc tu as l'historique des opérations. Ou est le problème?
    Amicalement

  10. #10
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 68
    Points : 40
    Points
    40
    Par défaut
    Mon problème est que:

    Dans cette situation,

    seurjer a écrit :
    L'utilisateur doit enregistrer du matériel qui lui a été vendu par un fournisseur, seulement, l'utilisateur ne sais pas à quelle date ce matériel bien précis à été acheté!!
    Je n'arrive pas en VBA à insérer une date (date de démarrage de mon exercice, par exemple) après avoir testé si l'utilisateur l'a insérée ou pas...

  11. #11
    Membre actif Avatar de maxeur
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    416
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 416
    Points : 267
    Points
    267
    Par défaut
    Essaye peut être la fonction Nz c'est ce qui m'a permis de faire fonctionner mon code car en fait d'aprés ce que j'ai compris ce que tu renvoie comme valeur est vide et donc Nz permet de tester un champ vide mais le problème est que je ne suis pas expérimenté et que je ne sais pas si ce n'est utilisable que dans des requête

    En espérant d'avoir un tant soit peu aiguillé

  12. #12
    Invité
    Invité(e)
    Par défaut
    Salut

    Je ne rempli de champ date avec une textbox, j'utilise un calendrier le composant Microsoft Date and Time Picker qui ceux trouve dans la liste des active X, ainsi tu n'as plus de contrôle à faire si une date a bien été saisi. Et j'ai remarqué que c'est plus agréable pour les utilisateurs, un simple clic de souris.

    Test le

    Starec

  13. #13
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 68
    Points : 40
    Points
    40
    Par défaut
    Je vous remercie de toutes ces solutions.

    Je n'ai pas encore trouvé exactement ce que je veux, mais je continu à chercher de mon côté...

  14. #14
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Tu devrais écouter le conseil de Tofalu.
    Tu peux très bien rendre un champ obligatoire sans pour autant que ce soit une clé primaire.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

Discussions similaires

  1. [Dates] Test sur un champ de formulaire
    Par rdams dans le forum Langage
    Réponses: 4
    Dernier message: 15/09/2005, 16h03
  2. insérer un 'NULL' dans un champ de type DATE
    Par 84mickael dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 01/06/2005, 09h23
  3. Pb avec une dbgrid et un champ de type date
    Par Ellde dans le forum Bases de données
    Réponses: 1
    Dernier message: 17/03/2005, 16h21
  4. Critères sur champ de type date
    Par blasco dans le forum Access
    Réponses: 2
    Dernier message: 29/10/2004, 09h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo