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 :

remplacement code et controles des forms par une fonction


Sujet :

Access

  1. #1
    Membre averti Avatar de @rkane
    Homme Profil pro
    developpeur amateur dans mon cadre professionnel
    Inscrit en
    Juin 2006
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : developpeur amateur dans mon cadre professionnel
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 521
    Points : 403
    Points
    403
    Par défaut remplacement code et controles des forms par une fonction
    bonjour à tous,
    pour tracer le parcours des utilisateurs dans une base avec environnement utilisateur, j'utilise ce code que j'ai teste avec succes sur quelques formulaires :
    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
    Private Sub Form_Load()
    Me.Ouverture.Value = Now()
    End Sub
     
    Private Sub Form_Close()
    Me.Fermeture.Value = Now()
    DoCmd.SetWarnings False
    Dim sql As String
    sql = "INSERT INTO JournalConnectionsUtilisateurs ( Nom, Ouverture, Formulaire, Fermeture )" & _
          "SELECT Formulaires!ConsignesPonctuelles!Nom AS Expr1," & _
          "Formulaires!ConsignesPonctuelles!Ouverture AS Expr2," & _
          "Formulaires!ConsignesPonctuelles!Formulaire AS Expr3," & _
          "Formulaires!ConsignesPonctuelles!Fermeture AS Expr4;"
    DoCmd.RunSQL sql
    End Sub
    je dispose sur chaque formulaire 4 champs independants : Nom/Ouverture/Formulaire/Fermeture
    Nom est recupere via le form de login et formulaire est le nom du formulaire qui est ouvert recupere par une valeur par defaut "Forms!MonForm.Nom"
    Le principe fonctionne bien, mais c'est assez fastidieux de placer controles et codes dans chaque form... Y 'aurait il une possibilité de remplacer cela par une fonction ?
    Merci d'avance.
    Patrick

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour,

    Je ne suis pas sûr d'avoir bien compris to pb, mais as-tu pensé à définir une fonction comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public fctEnregistrerFormulaires( frm as form) as boolean
    Qui se comporte comme une procédure d'enregistrement qui renvoie vrai si l'enregistrement c'est bien passé.
    Ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public fctEnregistrerFormulaires( frm as form, ByVal sCtl1 as string, ...sCtl4 as string) as boolean
    si les noms des contrôles indépendants changent d'un formulaire à l'autre.

    Le contrôle "fermeture" n'est pas trop utile, la fonction peut directement utiliser Now().

    Bon courage

  3. #3
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    ..

  4. #4
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 910
    Points : 4 808
    Points
    4 808
    Par défaut
    Ma suggestion :
    Tu as 4 valeurs à renseigner pour ta fonction.
    Nom/dtOuverture/Formulaire/dtFermeture

    Nom : ok
    Form : ok
    dtOuverture : à l'ouverture du frm, tu stockes cette date dans une variable de type date déclarée au niveau du module du frm
    dtFermeture : date en Quittant le frm

    Ainsi, en Quittant le frm, tu peux lancer ta fonction d'INSERT.

    Avantage : tu n'as qu'une déclaration à faire par form et une seule action SQL sur la table JournalConnectionsUtilisateurs

    Inconvenient : si c'est pour repérer des plantages éventuels d'utilisateurs sur un même frm, il faut mieux faire un INSERT des 3 valeurs connues à l'ouverture et un UPDATE (pour màj dtFermeture) en quittant le form

    A+

  5. #5
    Membre averti Avatar de @rkane
    Homme Profil pro
    developpeur amateur dans mon cadre professionnel
    Inscrit en
    Juin 2006
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : developpeur amateur dans mon cadre professionnel
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 521
    Points : 403
    Points
    403
    Par défaut
    salut micniv,merci pour ta reponse, mais la procedure que tu me decris est deja en place et fonctionne... je veux savoir s'il est possible d'eviter de recopier "physiquement" les 4 controles independants et les lignes de codes dans chaque formulaires, en passant par une fonction qui serait simplement appelée à l'ouverture des formulaires ?

    pour PGZ, ben je crois qu'on est pas sur la meme longueur d'onde...

  6. #6
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 910
    Points : 4 808
    Points
    4 808
    Par défaut
    Ah les longueurs d'onde ... !
    A aucun moment je ne parle de champs dans ma suggestion de solution : meme qu'il y en a aucun ! seulement une seule déclaration en tête de module
    A+

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/06/2021, 12h00
  2. Combinaisons : comment remplacer des if par une boucle
    Par maccormick dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 06/10/2011, 14h40
  3. remplacer les symbole dans des urls par leur code
    Par GoldenEyes dans le forum Réseau/Web
    Réponses: 3
    Dernier message: 15/06/2009, 17h16
  4. remplacer du code par une fonction
    Par bullrot dans le forum C++Builder
    Réponses: 6
    Dernier message: 21/11/2007, 12h08
  5. Réponses: 4
    Dernier message: 07/04/2007, 20h02

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