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

IHM Discussion :

[formulaire] événement touche pressée


Sujet :

IHM

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 64
    Points : 33
    Points
    33
    Par défaut [formulaire] événement touche pressée
    Bonjour,

    Alors voilà j'aimerais dans mon formulaire faire une fonction qui mets à jour automatiquement le champ numéro de facture et la date du jour quand l'utilisateur appuie sur la touche F2 (pour ça j'ai la fontion )

    Recap de ma base :
    Table_SOCIETE contient une seule société et un champ DerNumFact
    Mon formuaire F_FACTURATION est basé sur Table_FACTURATION qui contient le num de facture (NumFact)

    Ma fonction doit etre : DerNumFact + max(NumFact) + 1 - DerNumFact

    Ce que je ne sais pas faire :
    1. indiquer comment aller "récupérer" la valeur de DernNumFact
    2 inclure la recherche du Numéro de facture le plus élevé max(NumFact)

    Merci d'avance de votre aide

    PS : j'ai bien vu que je fais DerNumFact - DerNumFact mais c'est normal, c'est pour le premier enregistrement ça fera donc selon la fonction 0 + 0 + 1 - 0

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 96
    Points : 78
    Points
    78
    Par défaut
    Avant d'essayer de répondre, ton DerNumFact et ton max(NumFact) ne correspondent-t-ils pas à la meme chose?

    Pour ton problème :
    Tu peux par exemple mettre dans un champ invisible une requete sql calculant le max(NumFact) et comme valeur par defaut de ton champ num_Fact la valeur du champ invisible + 1. je crois que c'est une possibilité mais il doit avoir plus propre

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 64
    Points : 33
    Points
    33
    Par défaut
    Petite précision

    pourquoi le champ DerNumFact car la compta de cette boite a déjà des numéros de factures mais ils n'ont rien pour gérer leur truc : tout est fait sous excel et sans archives.
    Donc ce que je fais prends la suite c'est pour cela que j'ai besoin de ce DerNumFact

    Pour Max(NumFact) ce sera quand ils utiliseront la base et auront fait des factures via celle-ci

    j'ai tenté de faire ce que tu as dit mais cela ne fonctionne pas.

    Voici le code mis sur touche apuyée du Formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    Select Case KeyCode
    Case 113
     
    Me!NumFacture.Value = Me!ProchNumFact.Value
     
    End Select
    End Sub
    113 étant le code de F2. Au passage je ne trouve pas le code pour ctrl + F2 ce qui serait mieux donc si quelqu'un l'a ...

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 96
    Points : 78
    Points
    78
    Par défaut
    pourquoi le champ DerNumFact car la compta de cette boite a déjà des numéros de factures mais ils n'ont rien pour gérer leur truc : tout est fait sous excel et sans archives.
    Donc ce que je fais prends la suite c'est pour cela que j'ai besoin de ce DerNumFact

    Pour Max(NumFact) ce sera quand ils utiliseront la base et auront fait des factures via celle-ci
    ok pour ce point.

    A part ça j'ai l'impression d'etre perdu:

    Peux-tu recentrer le problème.

    A quel moment l'utilisateur utilise cette touche?
    Es tu dans un formulaire de saisie, si oui celui relié à la table société ou facture?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 64
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par tonio-lille
    ok pour ce point.

    A part ça j'ai l'impression d'etre perdu:

    Peux-tu recentrer le problème.

    A quel moment l'utilisateur utilise cette touche?
    Es tu dans un formulaire de saisie, si oui celui relié à la table société ou facture?
    L'utilisateur utilise la touche pour ne pas avoir à saisir le num de facture. La touche ctrl+F2 est faite pour mettre la valeur de la date du jour dans le champ Date facture et mettre le num de facture dans le champ NumFact

    Je suis dan sun formulaire de saisie basé sur la table facturation

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 96
    Points : 78
    Points
    78
    Par défaut
    Tu peux essayer ça, j'ai supposé qu'à partir de ton formulaire que tu connaissais la société pour laquelle la facture était destinée.
    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
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    Dim rs As DAO.Recordset
    Dim db As DAO.Database
    Dim dnf As Integer
    Dim mnf As Integer
    Set db = CurrentDb
    Select Case KeyCode
    Case 113
    Set rs = db.OpenRecordset("Select DerNumFact from [societe] where idSociete = " & Me.idSociete)
        dnf = rs![DerNumFact]
        rs.Close
        Set rs = db.OpenRecordset("Select max(NumFact) as max from [facture] where idSociete = " & Me.idSociete)
        'cas premiere facture avec ton application
        If rs.RecordCount = 0 Then
            Me!NumFacture = dnf + 1
        Else
        'cas ou une facture a déjà été faite
            Me!NumFacture = rs!Max + 1
        End If
        rs.Close
        db.Close
    End Select
    End Sub

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 64
    Points : 33
    Points
    33
    Par défaut
    Merci ça marche !!!!

    Mais avant de mettre le tag résolu il me manque 2 choses.
    1. J'ai un champ date fecature que je mets à jour avec date() sur touche appuyée identique à ma question initiale. Comment vérifier si le champ est vide et lui dire de le remplir avec date() ou bien si la date a déjà été renseignée qu'il conserve la date déjà placée
    2. Je bloque la modification de tous mes champs quand une case à cocher est à true. Est-il possible de bloquer l'action de la touche appuyée quand cette case est true

    Merci

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 96
    Points : 78
    Points
    78
    Par défaut
    Bonjour,

    Oui c'est pas très compliqué:

    Pour le 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If isNull(Me.dateFacture) Then
         me.dateFacture = Date()
    End If
    Pour le 2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) 
    Select Case KeyCode Case 113   
     
    If me.chkMaCheckBox = false Then
    'traitement
    End if
     
     
    End Select 
    End Sub

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 64
    Points : 33
    Points
    33
    Par défaut
    Yes c'est tout bon

    Merci pour tout

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/04/2012, 17h15
  2. Submit d'un formulaire et touche entrée
    Par titalex dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 15/06/2006, 12h09
  3. Ne pas soumettre le formulaire lorsqu'on presse ENTER
    Par Amnesiak dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 03/01/2006, 10h51
  4. [TMemo] Comment insérer les touches pressées ?
    Par Alexandre` dans le forum Composants VCL
    Réponses: 8
    Dernier message: 28/03/2005, 16h36
  5. Récupérer un évènement du presse papier
    Par cedrolin dans le forum MFC
    Réponses: 2
    Dernier message: 26/07/2004, 23h03

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