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

VBA Access Discussion :

recupérer une date d'inputbox [AC-2013]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Par défaut recupérer une date d'inputbox
    Bonjour,

    Pour commencer, j'ai vu de nombreux posts mais aucun ne semble répondre à ma demande. Il faut savoir que je suis novice en vba. Ainsi, voila mon problème:

    J'ai une table relance qui a les critères suivants: date de relance, effectuée (champs oui/non) et sans suite. je voudrai que lorsque je coche sur effectuée, on m'oblige à rentrer une nouvelle date de relance (jusque là j'y suis arrivé). le problème vient ensuite. Je ne sais pas quel code utilisé pour récupérer la date rentrée dans l'inputbox afin de la mettre dans date de relance. Auriez vous des idées?

    Je m'excuse par avance s'il y a un autre post sur le même sujet mais après quelques heures de recherches je n'ai toujours pas trouvé.

    cordialement

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 849
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 849
    Par défaut
    Bonjour,

    En utilisant F1 sur InputBox, tu as

    Affiche une invite dans une boîte de dialogue, attend que l'utilisateur tape du texte ou clique sur un bouton, puis renvoie le contenu de la zone de texte sous la forme d'une valeur de type String.
    Il te faut :
    1 - Déclarer un variable pour récupérer la valeur de ton InputBox.
    2 - Après tu assignes cette valeur à ta date de relance :

    Pseudo-code à insérer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim DateSaisie as String
    ....
    DateSaisie = InputBox(.......)
    me.DateRelance = DateSaisie
    .....
    Bonne continuation

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Par défaut
    Merci beaucoup de cette réponse mais comme je l'ai dit je suis novice et je viens de le tester et ma fonction se met en jaune signe d'une erreur mais je ne vois pas où. Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Function TestInputBox()
     
      Dim DateSaisie As String
      Dim y As Date
     
      ' Demander une date
      DateSaisie = InputBox("Entrer obligatoirement une date", "Important", "00/00/0000")
     
      ' Vérifier que la saisie est bien transformable en date
      If IsDate(DateSaisie) Then
        ' Si la saisie est bien une date...
        y = CDate(DateSaisie)
       Me.Date_Relance = DateSaisie
     
      Else
        ' Si la saisie est incorrecte...
        MsgBox "Vous n'avez pas tapé de date !", vbExclamation
         DateSaisie = InputBox("Entrer obligatoirement une date", "Important", "00/00/0000")
         End If
     
         If IsDate(DateSaisie) Then
        ' Si la saisie est bien une date...
        y = CDate(DateSaisie)
     
      Else
        ' Si la saisie est incorrecte...
        MsgBox "Vous n'avez pas tapé de date !", vbExclamation
        DateSaisie = InputBox("Entrer obligatoirement une date", "Important", "00/00/0000")
      End If
     
     If IsDate(DateSaisie) Then
        ' Si la saisie est bien une date...
        y = CDate(DateSaisie)
     
      Else
        ' Si la saisie est incorrecte...
        MsgBox "Vous n'avez pas tapé de date !", vbExclamation
        End If
     
     
    End Function

    Ai-je fait une erreur quelque part?

  4. #4
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Par défaut


    Je pense que le problème vient du fait que tu as fait une Function et non une Sub

    Une Sub est une suite d'instructions placées sur un évènement, qui agissent sur un controle et dans lesquelles peut se trouver une fonction.

    Une Function est une suite d'instructions qui retourne une valeur
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Par défaut
    bonjour,

    merci de la réponse bien que je suis toujours dans le brouillard. je ne vois pas où je dois mettre le me.Date_Relance.enable = DateSaisie d'autant plus que je ne sais pas si Date_Relance va suffir car ce champs est dans un sous formulaire du formulaire client. La question que je me pose c'est dois-je mettre tous les paramètres pour qu'il me trouve le champs?

    cordialement

  6. #6
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Par défaut
    Re,

    Je t'avoue avoir du mal à comprendre et de ce fait à t'apporter une aide efficace.

    Pourrais-tu joindre ta base de données afin de voir concrètement le problème.
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Batch] Recupérer une date peu importe l'OS
    Par bstevy dans le forum Scripts/Batch
    Réponses: 9
    Dernier message: 20/03/2015, 01h53
  2. Recupérer une date.
    Par Cheeper dans le forum Langage
    Réponses: 1
    Dernier message: 07/01/2008, 17h11
  3. Réponses: 17
    Dernier message: 22/04/2006, 12h24
  4. Recupérer une donnée avec un WHERE concernant la date
    Par benlasavate dans le forum Access
    Réponses: 1
    Dernier message: 23/01/2006, 08h18
  5. recupérer une date d'insertion
    Par lunatic dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 08/09/2005, 19h02

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