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 :

Appel d'un formulaire présent dans une autre base des données


Sujet :

IHM

  1. #1
    Membre habitué
    Inscrit en
    Avril 2005
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 123
    Points : 132
    Points
    132
    Par défaut Appel d'un formulaire présent dans une autre base des données
    BOnjour,

    Je voudrai savoir comment faut il faire pour appeler un formulaire qui se trouve dans une autre base des données. Je voudrai afficher dans la base des données A une fiche tres personnalisée que j'ai déjà dans la base B. Je me demande si je suis obligé de refaire le même formulaire dans la base A.
    Je vis dans un ghetto sale et repugnant communément appelé "Service informatique".

    Pour ceux qui ne l'ont pas remarqué, je suis gaucher (Fallait le dire plus tôt!!!)

  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
    Tu peux le faire mais c'est plus compliqué que de faire un attachement sur les tables de l'autre base et de refaire ton form dans ta bd appelante.

    Voici un exemple de code qui fait ce que tu demandes.

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
     
    Public BaseExterne As New Access.Application
     
    Private Sub Test_SelectionnerBaseExterne()
        Dim result As Object
        Call OuvrirBaseExterne
        Set result = SelectionnerBaseExterne(0, True)
        Debug.Print result.ToString
        Set result = Nothing
        Set result = SelectionnerBaseExterne(1, True)
        Debug.Print result.ToString
        Set result = Nothing
        Call FermerBaseExterne
    End Sub
     
    Public Sub OuvrirBaseExterne()
    'A appeler une fois en début d'application
        If Not (MODE_DEBUG And EstDev()) Then On Error GoTo Err_OuvrirBaseExterne
     
        BaseExterne.OpenCurrentDatabase (DBDir() & "BaseExterne.mdb")
     
    Exit_OuvrirBaseExterne:
        Exit Sub
     
    Err_OuvrirBaseExterne:
        Select Case Err
     
            Case 7867
                'base déjà ouverte, pas un problème
                Resume Next
     
            Case Else
                Call AfficherMessErreurStandard(Err)
                Resume Exit_OuvrirBaseExterne
     
        End Select
    End Sub
     
    Public Sub FermerBaseExterne()
        If Not (MODE_DEBUG And EstDev()) Then On Error GoTo Err_FermerBaseExterne
     
        BaseExterne.CloseCurrentDatabase
        Set BaseExterne = Nothing
     
    Exit_FermerBaseExterne:
        Exit Sub
     
    Err_FermerBaseExterne:
        Select Case Err
     
            Case 2467
                'base déjà fermée, pas un problème
                Resume Next
     
            Case Else
                Call AfficherMessErreurStandard(Err)
                Resume Exit_FermerBaseExterne
     
        End Select
     
    End Sub
     
    Public Function SelectionnerBaseExterne(prmMonParam As Integer, _
                                        prmListeVerrouillee As Boolean) As Object
     
        Dim result As Object
     
        BaseExterne.Application.Visible = True
     
        Set result = BaseExterne.Run("SelectionnerBaseExterne", _
                                     prmMonParam, _
                                     prmListeVerrouillee)
     
        Set SelectionnerBaseExterne = result
     
     
        BaseExterne.Application.Visible = False
        Set result = Nothing
     
    End Function
    SelectionnerBaseExterne
    est une fonction publique de la base BaseExterne qui appel ensuite un formulaire.

    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 éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    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 : 956
    Points : 1 139
    Points
    1 139
    Par défaut
    Bonjour!

    Tu peux peut-être ajouter une référence à cette bdd. Normalement tout objet inclus dans une base référencée peut être appelé ainsi.

    bonne continuation...
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  4. #4
    Membre habitué
    Inscrit en
    Avril 2005
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 123
    Points : 132
    Points
    132
    Par défaut
    Citation Envoyé par marot_r Voir le message
    Tu peux le faire mais c'est plus compliqué que de faire un attachement sur les tables de l'autre base et de refaire ton form dans ta bd appelante.

    Voici un exemple de code qui fait ce que tu demandes.

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
     
    Public BaseExterne As New Access.Application
     
    Private Sub Test_SelectionnerBaseExterne()
        Dim result As Object
        Call OuvrirBaseExterne
        Set result = SelectionnerBaseExterne(0, True)
        Debug.Print result.ToString
        Set result = Nothing
        Set result = SelectionnerBaseExterne(1, True)
        Debug.Print result.ToString
        Set result = Nothing
        Call FermerBaseExterne
    End Sub
     
    Public Sub OuvrirBaseExterne()
    'A appeler une fois en début d'application
        If Not (MODE_DEBUG And EstDev()) Then On Error GoTo Err_OuvrirBaseExterne
     
        BaseExterne.OpenCurrentDatabase (DBDir() & "BaseExterne.mdb")
     
    Exit_OuvrirBaseExterne:
        Exit Sub
     
    Err_OuvrirBaseExterne:
        Select Case Err
     
            Case 7867
                'base déjà ouverte, pas un problème
                Resume Next
     
            Case Else
                Call AfficherMessErreurStandard(Err)
                Resume Exit_OuvrirBaseExterne
     
        End Select
    End Sub
     
    Public Sub FermerBaseExterne()
        If Not (MODE_DEBUG And EstDev()) Then On Error GoTo Err_FermerBaseExterne
     
        BaseExterne.CloseCurrentDatabase
        Set BaseExterne = Nothing
     
    Exit_FermerBaseExterne:
        Exit Sub
     
    Err_FermerBaseExterne:
        Select Case Err
     
            Case 2467
                'base déjà fermée, pas un problème
                Resume Next
     
            Case Else
                Call AfficherMessErreurStandard(Err)
                Resume Exit_FermerBaseExterne
     
        End Select
     
    End Sub
     
    Public Function SelectionnerBaseExterne(prmMonParam As Integer, _
                                        prmListeVerrouillee As Boolean) As Object
     
        Dim result As Object
     
        BaseExterne.Application.Visible = True
     
        Set result = BaseExterne.Run("SelectionnerBaseExterne", _
                                     prmMonParam, _
                                     prmListeVerrouillee)
     
        Set SelectionnerBaseExterne = result
     
     
        BaseExterne.Application.Visible = False
        Set result = Nothing
     
    End Function




    est une fonction publique de la base BaseExterne qui appel ensuite un formulaire.

    A+

    Et comment je peux ecrire tout ceci en VBA?
    Je vis dans un ghetto sale et repugnant communément appelé "Service informatique".

    Pour ceux qui ne l'ont pas remarqué, je suis gaucher (Fallait le dire plus tôt!!!)

  5. #5
    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
    Citation Envoyé par mayloshi Voir le message
    Et comment je peux ecrire tout ceci en VBA?
    ??? comprend pas ??? C'est du VBA.

    C'est une copie d'un morceau de code que j'utilise déjà.

    Si tu as de la difficulté avec cela la solution de la référence est meilleure.

    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.

  6. #6
    Membre habitué
    Inscrit en
    Avril 2005
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 123
    Points : 132
    Points
    132
    Par défaut
    C'est bon, j'ai résolu le probleme. COmme tu le dis c'est du VBA.

    J'ai créé un module dans la base des données qui contient le formulaire en question, j'ai créé une fonction publique qui ouvre le formulaire, j'ai référencé le projet de la base des données qui contient le formulaire dans le projet appelant, et j'ai appelé la procédure!
    Je vis dans un ghetto sale et repugnant communément appelé "Service informatique".

    Pour ceux qui ne l'ont pas remarqué, je suis gaucher (Fallait le dire plus tôt!!!)

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

Discussions similaires

  1. Recherche de terme non présent dans une autre base
    Par omelhor dans le forum Requêtes
    Réponses: 2
    Dernier message: 25/07/2014, 11h30
  2. Réponses: 4
    Dernier message: 22/05/2010, 15h14
  3. [AC-2003] Transfert d'un champ dans une autre base de donnée
    Par dacre dans le forum VBA Access
    Réponses: 4
    Dernier message: 07/08/2009, 04h40
  4. Réponses: 1
    Dernier message: 16/10/2008, 11h40
  5. Réponses: 3
    Dernier message: 19/12/2006, 01h16

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