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 :

Ouvrir formulaire d'une base distante


Sujet :

IHM

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 681
    Points : 214
    Points
    214
    Par défaut Ouvrir formulaire d'une base distante
    Bonjour,
    J'ai utilisé avec succès la FAQ de Papy_Turbo https://access.developpez.com/faq/?p...uvrFormAutrBDD pour afficher un état d'une base distante, mais j'échoue pour ouvrir un formulaire.

    la ligne de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Application.FormOpen "NomFormulaire", acDesign
    renvoie une erreur : ne trouve pas la procédure en question, alors que tout se passe bien pour les états.
    Il indique la possibilité d'ajouter le nom du projet XXX à "Application" sous la forme "ApplicationXXX."formOpen...."
    J'ai essayé en vain de remplacer les "xxx" par le nom du projet, mais ça échoue, alors que pour les états j'ai simplement omis les "xxx".
    Si vous avez déjà utilisé ce genre de procédure, merci de me dire ce que vous pensez de mon problème.
    Cordialement

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    FormOpen n'est pas une procédure de Access mais un procédure définie par l'utilisateur.

    Donc à mon avis il suffit d'enlever le Application..

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 681
    Points : 214
    Points
    214
    Par défaut
    Bonjour et merci de ta réponse.
    La suppression de "Application." ne change rien.

    Je pense que cela provient de la référence,( mais quand on ajoute une référence, le nom est donné par le système et on ne peut le modifier), car dans le Portail où l'état se laisse afficher, le formulaire s'ouvre bien.
    Dans un autre Portail (2 bases liées) ça ne va pas pour les 2.
    La procédure appelée n'est pas reconnue, alors qu'elle l'est dans le premier Portail.

    Je continue à chercher ....
    A+

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    OK, essaye quelque chose comme :

    ou alors

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TaBDQuiAFormOepn.TonModule.FormOpen
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Invité
    Invité(e)
    Par défaut
    bonjour,

    en respectant les consignes de papyturbo, ça fonctionne très bien :

    1) Relever le nom de la base fille à lier dans Visual Basic Editor : Ouvrir la BDD puis appuyer sur ALT+F11, aller dans le menu 'Outils' puis 'Propriétés de XXX' avec XXX le nom de l'application à conserver. Si ce nom est complexe (espaces, longueur, accents...), il est possible de le simplifier en le renommant par le Nom du Projet après avoir cliquer sur le menu 'Propriétés de XXX'

    2) Fermer la base précédente

    3) Depuis la base mère, aller dans Visual basic Editor (Alt+F11) : menu outils -> références, cliquer sur parcourir, sélectionner le bon type de fichier dans la liste déroulante (*.accdb ou *.mdb selon le type de bdd à lier) puis sélectionner la bdd et cliquer sur ouvrir.

    => On vient d'ajouter en référence à la bdd mère, la BDD fille. On peut alors appeler les fonctions de la base fille par XXX.MaFonctionPublique(...) et par exemple les fonctions de la faq proposées par pepeturbo qui doivent être présentes dans la base fille (FormOpen, ReportOpen)

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 681
    Points : 214
    Points
    214
    Par défaut
    @galoir
    Bonjour,
    Tes explications m'ont surtout appris comment modifier la désignation de la base fille, et maintenant le formulaire s'ouvre après avoir signalé qu'il lui manque des éléments , les tables liées, ce qui peut s'expliquer par l'absence de lien avec sa base de données.

    Autre point critique : le point entre la désignation de la base fille et le nom de la fonction XXX.MaFonctionPublique(...)
    J'ai du le supprimer dans les deux procédures pour ne pas avoir d'erreurs.
    Si j'essaie de le mettre, une erreur de compilation ("fin d'instruction attendue") apparaît ligne 1 dans la procédure de la base fille lots de l'écriture du code, 'AdhGest' étant la désignation de la base fille.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Function AdhGest.FormOpen(FormName As String)
    DoCmd.OpenForm FormName
    End Function
    Merci de ton aide.
    Cordialement

  7. #7
    Invité
    Invité(e)
    Par défaut
    Ne pas modifier le nom de la fonction dans la base fille, ce nom doit rester formopen, sans adhgest...

    Pour l appel de cette fonction depuis la base mere, ecrire alors adhgest.formopen pour signaler a la base mere que l on appelle la fonction formopen de la base fille adhgest

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 681
    Points : 214
    Points
    214
    Par défaut
    Voici les codes que je pense avoir correctement modifié suivant tes conseils.
    Il se produit une erreur ligne 4 de la procédure mère : "ne peut pas trouver la procédure "AdhGest.formOpen".
    Base mère appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call AffForm("AdhGest")
    Base mère procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public Sub AffForm(Base)
    stdocname = "Membres"
    FonctNom = Base & ".FormOpen"
    Run FonctNom, stdocname
    DoEvents
    End Sub
    Base fille procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Function FormOpen(FormName As String)
    DoCmd.OpenForm FormName
    End Function
    .
    Ton avis sera le bienvenu.

  9. #9
    Invité
    Invité(e)
    Par défaut
    bonsoir,

    ma fonction dans la bdd mère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Public Function RunFunction(ByVal Base As String, ByVal Func As String, ByVal Arg1 As String)
       Run Base & "." & Func, Arg1
    End Function
    Appel : RunFunction "AdhGest", "FormOpen", "Membres"

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 681
    Points : 214
    Points
    214
    Par défaut
    Bonjour,
    J'ai essayé de tenir compte de tes suggestions, mais je dois avouer que je suisunn peu perdu.
    Quelle doit être la procédure pour la BD fille ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Function FormOpen(FormName As String, OpenArgs As String)
    DoCmd.OpenForm FormName, OpenArgs
    End Function
    ne fonctionne pas.
    Merci de ton aide
    A+

  11. #11
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Mettre dans la base fille la fonction 'formOpen' de papyturbo

  12. #12
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 681
    Points : 214
    Points
    214
    Par défaut
    C'est fait et ça fonctionne si la base fille n'utilise pas de tables attachées à une autre base.
    Mais cei est une autre histoire ....
    Meerci donc pour votre aide.
    Cordialement

Discussions similaires

  1. [AC-2000] Lister les formulaires d'une base distante
    Par ClaudeLELOUP dans le forum VBA Access
    Réponses: 2
    Dernier message: 22/08/2014, 07h55
  2. Ouvrir formulaire d'une autre base déjà ouverte
    Par Zouzou1er dans le forum IHM
    Réponses: 6
    Dernier message: 31/05/2009, 20h41
  3. Mise a jour d'une base distante [clos]
    Par vinzrsi dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/09/2005, 13h37
  4. acces à une base distante
    Par fredinarium dans le forum Installation
    Réponses: 3
    Dernier message: 08/09/2005, 20h14
  5. Alter user sur une base distante
    Par bilo2000 dans le forum Administration
    Réponses: 13
    Dernier message: 09/03/2004, 17h18

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