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 :

[VBA (script FAQ)] ouvrir un formulaire d'une autre base depuis un formulaire [AC-2003]


Sujet :

VBA Access

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [VBA (script FAQ)] ouvrir un formulaire d'une autre base depuis un formulaire
    Bonjour à tous,

    Alors, je vous (ré)explique mon problème : le script de la FAQ (http://access.developpez.com/faq/?pa...ss#OuvrBddForm) ne fonctionne pas chez moi.

    Lorsque je l'intègre dans un module comme mentionné et que j'appelle la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call fOpenRemoteForm("C:\Documents and Settings\...\mabase.mdb", "Form_a_ouvrir")
    Cela m'affiche 2 fenêtre Access vide, une qui semble correspondre à ma base puisqu'elle a le même nom (mais ça n'est pas elle car j'ai des données dans la base que je souhaite ouvrir ) et une autre qui semble correspondre à mon formulaire (pareil même nom sauf que le formulaire que j'aimerai ouvrir n'est pas vide lui).

    Lorsque je ferme l'une des deux fenêtre vide et que je reviens sur la fenêtre ou se trouve le formulaire appelant, j'ai une erreur :
    Runtime error
    Error #:91
    Variable objet ou variable de bloc With non définie

    Pas chouette, tout ce que je veux moi c'est ouvrir un formulaire depuis un autre formulaire (ces deux derniers ne se situant pas dans la même base de donnée bien entendu ).

    Merci à tous ceux qui pourront m'aider à résoudre mon problème

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    bonjour et bienvenue sur le forum,

    si tu es sur que la base et form existe et que c'est les bons noms :

    essayes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub TonBouton_Click()
     csts = "C:\\\TaBase.accdb"
    Set appAccess = _
            CreateObject("Access.Application")
     appAccess.OpenCurrentDatabase csts
     appAccess.DoCmd.OpenForm "TonFormulaire", acNormal
     
     appAccess.DoCmd.RunCommand acCmdAppMaximize
     
     
     appAccess.Visible = True
     
    End Sub

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Points : 1 535
    Points
    1 535
    Par défaut
    Bonjour,

    dans le code remplace ces lignes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    lngRet = apiSetForegroundWindow(.hWndAccessApp)
    lngRet = apiShowWindow(.hWndAccessApp, SW_MAXIMIZE)
    lngRet = apiShowWindow(.hWndAccessApp, SW_MAXIMIZE)
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    .visible=True 'Mettre à false pour ne voir que le formulaire
    .RunCommand acCmdAppMaximize
    et ces lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    .DoCmd.OpenForm strForm, intView
    Do While Len(.CurrentDb.Name) > 0
        DoEvents
    Loop
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If .CurrentProject.AllForms(strform).Name=strForm then
      .DoCmd.OpenForm strForm, WindowMode:=acDialog
    End if

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour à vous deux,

    et un grand Merci!!!

    J'ai testé vos deux solution et elles fonctionnent nickel, autant celle bourrine de LE VIEUX que l'adaptation du code de la FAQ d'ilank .

    Problème résolu donc, merci encore. Je pense que je vais prendre la solution de ilank car, comme il l'aura deviné, je ne cherche à ouvrir que le formulaire nommé mais aucun doute que cela aurait également été possible avec ta solution LE VIEUX .

    Bonne journée


    PS : au niveau du code de la FAQ justement, pas que je m'intéresse spécialement à la prog en vba mais il serait peut-être utile de préciser que si la solution proposée occasionne le même problème que le mien, il faut se rapporter à la solution d'ilank. Apparemment il a su cerner le problème donc cela pourrait arriver à n'importe qui utilisant ce code non?

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 23/01/2024, 21h15
  2. Réponses: 6
    Dernier message: 24/11/2019, 09h16
  3. [AC-2010] Extraire des données d'une autre base depuis un formulaire
    Par cybernini230 dans le forum IHM
    Réponses: 2
    Dernier message: 27/09/2010, 12h23
  4. Réponses: 6
    Dernier message: 03/04/2007, 10h19
  5. Réponses: 3
    Dernier message: 23/08/2006, 16h27

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