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 :

Appeler une fonction d'un autre formulaire [AC-2003]


Sujet :

IHM

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 21
    Points : 6
    Points
    6
    Par défaut Appeler une fonction d'un autre formulaire
    * Bonjour, *

    Voilà je me prend la tête depuis deux bonnes heures, la solution et surement toute simple...

    Dans un formulaire "Modification_statut" j'ai entre autre un bouton "Ajout TSN-TSO"

    Ce bouton m'ouvre un autre formulaire ("frm_TSNTSO_modification_statut")
    Ce deuxième formulaire doit m'afficher des infos que je récupère dans le 1er...

    donc lors du clique sur le bouton j'ouvre le formulaire (code basique fais tout seul par access)

    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
    'ouvrir formulaire
    Public Sub btn_TSNTSOj1_Modification_statut_Click()
    On Error GoTo Err_btn_TSNTSOj1_Modification_statut_Click
     
     
        Dim stDocName As String
        Dim stLinkCriteria As String
     
        stDocName = "frm_TSNTSO_modification_statut"
        DoCmd.OpenForm stDocName, , , stLinkCriteria
     
    Exit_btn_TSNTSOj1_Modification_statut_Cl:
        Exit Sub
     
    Err_btn_TSNTSOj1_Modification_statut_Click:
        MsgBox Err.Description
        Resume Exit_btn_TSNTSOj1_Modification_statut_Cl
    j'ajoute à ce code la ligne me permtant d'appeler une fonction qui se situe dans le code du formulaire appeler

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call Form_frm_TSNTSO_modification_statut.afficherJeuTso("00597G1")
    Dans l'ideal le "00597G1" sera remplacé par une variable^^

    Bref ca ne fonctionne pas

    Alors que si j'écris la même instruction dans le formulaire "frm_TSNTSO_modification_statut" ca fonctionne...

    Pour infos code de la fonction "afficherJeuTso"

    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
     
    Public Function afficherJeuTso(a) ' a = jeu
    'Debug.Print a
     
     
    ' affichage du paramètre
    txt_jeuadtsno_modification_statut.Value = a
     
    'MsgBox Me.txt_jeuadtsno_modification_statut.Value
     
    'récupération des infos
    Me.lst_TSOadtsno_modification_statut.RowSource = "SELECT Distinct Historique.TSO FROM historique WHERE Historique.idJeu_Jeu='" & a & "' and historique.date = (select max(historique.date) from historique where historique.idjeu_jeu = '" & a & "');"
    Me.lst_TSOadtsno_modification_statut.Requery
     
    Me.lst_rampeadtsno_modification_statut.RowSource = "SELECT  DISTINCT Historique.idRampe_Rampe, historique.TSN, Historique.TSO FROM  Historique WHERE historique.Resultat='ok'AND historique.idJeu_Jeu = '" & a & "' AND historique.Date=(SELECT Max(historique.Date) AS lastDate from historique WHERE historique.idJeu_Jeu ='" & a & "');"
    Me.lst_rampeadtsno_modification_statut.Requery
     
    End Function
    merci d'avance si vous voyez le problème^^

  2. #2
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 960
    Points : 1 148
    Points
    1 148
    Par défaut
    Salut!

    Essaie avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms!Form_frm_TSNTSO_modification_statut.afficherJeuTso("00597G1")
    Pour l'appel de la procédure.

    Bonne journée !

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms!frm_TSNTSO_modification_statut.afficherJeuTso ("00597G1")
    "impossible de trouver le fomulaire 'frm_TSNTSO_modification_statut' auquel il fait référence dans une expression de macro ou un code visual basique

    (j'ai vérifié le nom c'est le bon -.-)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    toto = Forms!Form_frm_TSNTSO_modification_statut("00597G1")
    oui car si je met pas de "=" il me sort erreur de compilation...(même si j'ai pas forcément besoin d'une retour pour l'affichage xD)

    si je le met, même erreur... xD

  4. #4
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 960
    Points : 1 148
    Points
    1 148
    Par défaut
    Pardon, j'avais mal lu ton post

    En fait la bonne syntaxe, c'est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms!Nom_du_formulaire_appelé.Nom_de_la_procédure_publique(paramètres)
    Bon courage!

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    c'est la tout le problème... (je sais que ta synthaxe est la bonne) (du moins j'ai appris la même (et m'en suis souvenu quand tu la posté)

    mais le nom du formulaire appelé c'est
    "frm_TSNTSO_modification_statut"

    la procedure étant afficherJeuTso est bien une procedure (fonction) déclarée en publique...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Function afficherJeuTso(a)
    je tape :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms!frm_TSNTSO_modification_statut.afficherJeuTso ("00597G1")
    et j'ai l'erreur de ce matin

  6. #6
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 960
    Points : 1 148
    Points
    1 148
    Par défaut
    Piste 1 / Le paramètre - a - de ta fonction publique doit-il bien être de type alpha ?

    Piste 2 / Pourquoi une fonction et non un Sub ? La fonction doit-elle renvoyer des valeurs?

    Car alors (et là encore, j'ai dû mal lire ton post) elle devrait être appelée ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    variable=nom_de_form_appelé.nom_de_fonction_publique(paramètres)
    Après re-lecture de ton code, il me semble qu'en remplaçant "Function" par "Sub" et en l'appelant avec la syntaxe citée plus haut, ton problème devrait être résolu...

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    bonjour, désolé du temps de réponse... (long weekand...)

    Une fonction car effectivement elle va effectuer un traitement et me renvoyer une valeur^^

    - a - est définit comme variant...^^

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    Problème contournée merci de tes réponses

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

Discussions similaires

  1. appeler une fonction dans un autre programme
    Par elghadi_mohamed dans le forum Langage
    Réponses: 3
    Dernier message: 19/10/2007, 19h58
  2. Appeler une fonction d'un sous-formulaire
    Par mouaa dans le forum VBA Access
    Réponses: 3
    Dernier message: 16/08/2007, 09h52
  3. Réponses: 2
    Dernier message: 04/04/2007, 18h30
  4. [VB.NET][2.0]Appeler une fonction d'un autre .VB
    Par Golzinne dans le forum Windows Forms
    Réponses: 4
    Dernier message: 29/03/2006, 23h20
  5. Appeler une fonction dans un autre cadre !
    Par rich25200 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/11/2005, 13h01

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