Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Ouvrir formulaire d'une autre base

0 views
Skip to first unread message

Pat

unread,
May 2, 2003, 2:59:19 AM5/2/03
to
Bonjour,

Je souhaiterai ouvrir un formulaire d'une autre base dans ma base en cours
(sans ouvrir une autre instance). Simplement pouvoir utiliser le formulaire
d'une autre base dans ma base en cous.

J'ai trouvé le code ci-dessous sur ce forum mais je ne m'en sors pas. Je ne
sais pas comment faire une référence à une deuxième base de donnée.

Merci d'avance pour votre aide et une très bonne journée à vous tous.

Pat

-------------------------------------------------------------------

Tu peux par exemple dans une autre base faire ceci :

Créer un formulaire "frmTest"
Créer un module "modFormExe"
Créer une fonction dans ce module du style :

Fonction OpenFormExt()
Docmd.OpenForm "frmTest"
End Function

Ensuite dans ta base principale :

Tu rajoutes une référence à ta 2ème base de donnée

Ensuite tu n'as plus qu'à faire une fonction du style :

Function Test()
modFormExe.OpenFormExt
End Function

J'ai pas vérifié mais normalement ça marche...

@+
--------------------------------------------
Jessy Sempere
Délégation Infra INP-BC
Tél : 32.05.28 ou 01.40.48.05.28
jessy....@sncf.fr
--------------------------------------------
Fly <francois...@prg.sncf.fr> a écrit dans le message :
al9l17$p51$1...@muguet.sncf.fr...

-------------------------------------------------------------------------

Jessy Sempere

unread,
May 2, 2003, 3:14:19 AM5/2/03
to
Bonjour

Tu fais bien de préciser que tu ne t'en sors pas, j'allais te donner la
même solution...

Donc dans ta base principale tu ouvres un module quelconque
et tu vas dans la menu "outils" - "Référence" puis tu click sur "Parcourir"

Là tu sélectionnes ta deuxième base et ensuite tu n'as plus qu'à appliquer
ce que je disais dans le message que tu as retrouvrer dans les
archives...

@+
Jessy Sempere - Access MVP
jessy....@sncf.fr
------------------------------------
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/charte.htm
------------------------------------
Pat <NOSPAM@NOSPAM> a écrit dans le message :
3eb2152c$0$692$ba62...@reader0.news.skynet.be...

Xavier HUE

unread,
May 2, 2003, 3:10:53 AM5/2/03
to
Bonjour Pat,

Comme Jessy l'indique, il est possible de référencer une
base de données externe, puis d'accéder à l'ensemble de
ses objets.

Pour ce faire:
- Ouvre un module (ou la fenêtre de deboggage en
appuyant sur CTRL+G)
- Dans le menu Outils/Références, choisi parcourir,
recherche ta base externe et sélectionne là

Tu peux maintenant faire un
docmd.openform "NomFormBaseExterne"

ou appeler des procédures ou fonctions de modules
standards.

cordialement.

Pierre CFI

unread,
May 2, 2003, 3:53:39 AM5/2/03
to
bonjour
oui, on peut méme passer le nom du form en argument à la fonction
attention, la réf prend le nom du projet s'il a été défini dans option, au lieu du nom de la bd
pas de pont Jessy ? quoiqu'il va falloir bosser dur pour "ma" retraite
:-))

--
Pierre CFI
MVP Access
Pour mieux utiliser microsoft.public.fr.access...
http://users.skynet.be/mpfa/charte.htm

"Jessy Sempere" <jessy....@prg.sncf.fr> a écrit dans le message de news: b8t5l8$fj9$1...@muguet.sncf.fr...

Jessy Sempere

unread,
May 2, 2003, 4:09:56 AM5/2/03
to
Salut

"Pierre CFI <NO_SPAMpie...@wanadoo.fr> a écrit" :

> oui, on peut méme passer le nom du form en argument à la fonction
> attention, la réf prend le nom du projet s'il a été défini dans option, au
lieu du nom de la bd

Exact...

> pas de pont Jessy ? quoiqu'il va falloir bosser dur pour "ma" retraite
> :-))

Et non pas de pont pour le mois de mai...
En ce moment je suis débordé... et oui même les fonctionnaires le
sont parfois... ;-)
En fait je suis sur une application budgétaire et comptable depuis un
peu plus d'une semaine qui va permettre d'automatiser un travail qui
prennait
3 semaines tous les trimestres et qui maintenant ne prend que 5 minutes...

Malheureusement il n'y avait pas de cahier des charges donc mon chef
me pond de nouvelle condition qui changent tout et qui remettent tout en
question au dernier moment... c'est cool ;-((

Mais bon je touche au but...

Et toi comment vas ???

Pierre CFI

unread,
May 2, 2003, 4:21:26 AM5/2/03
to
oui, mais tu crées des futurs chomeurs dans ton service fais gaffe

--
Pierre CFI
MVP Access
Pour mieux utiliser microsoft.public.fr.access...
http://users.skynet.be/mpfa/charte.htm

"Jessy Sempere" <jessy....@prg.sncf.fr> a écrit dans le message de news: b8t8th$h3o$1...@muguet.sncf.fr...

Pat

unread,
May 2, 2003, 12:22:21 PM5/2/03
to
Merci pour votre aide efficace.

Cela fonctionne bien avec la procédure de Jessy, mais maintenant mon
problème c'est que je dois ouvrir ce formulaire externe via une macro
"autoexec" et qu'il doit s'ouvrir en mode "Caché".

Xavier suggérait qu'il était possible de faire directement référence à ce
formulaire externe mais je n'y arrive pas.

--------------------


Tu peux maintenant faire un
docmd.openform "NomFormBaseExterne"

----------------------------

Si c'est possible d'y faire référence directement dans la macro autoexec
quelle est la syntaxe à utiliser. Sinon comment l'ouvrir de manière cachée
avec la procédure de Jessy..

Pat


"Pat" <NOSPAM@NOSPAM> a écrit dans le message de
news:3eb2152c$0$692$ba62...@reader0.news.skynet.be...

Xavier HUE

unread,
May 5, 2003, 4:48:24 AM5/5/03
to
Bonjour Pat,

Réponse tardive, w.e. oblige ;-)

Ooops!
Effectivement, Docmd.OpenForm NomFormExterne ne fonctionne
pas (du moins, je n'ai pas trouvé la syntaxe exacte).

Tu peux t'en sortir de la façon suivante:

1) Dans la base externe, créer un module qui contiendra une
(des) fonctions publique(s). Ces fonctions se chargent
d'ouvrir et fermer les formulaires (et eventuellement les
états) inclus dans cette base, voire toutes autres
procédures dont tu as besoin.

2) Faire appel à une de ces fonctions pour ouvrir un
formulaire.

Exemple:

- Dans la base externe
Option Compare Database
Option Explicit

Public Function OuvrirForm(strNomForm As String, _
bytModeAffichage As Byte, _
strNomFiltre As String, _
strConditionWhere As String, _
bytModeDonnees As Byte, _
bytModeFenetre As Byte, _
strOpenArgs As String _
) As Boolean

On Error Resume Next
Err.Number = 0
DoCmd.OpenForm strNomForm, _
bytModeAffichage, _
strNomFiltre, _
strConditionWhere, _
bytModeDonnees, _
bytModeFenetre, _
strOpenArgs

If Err.Number <> 0 Then
OuvrirForm = False 'Echec ouverture
Else
OuvrirForm = True 'Ouverture OK
End If

End Function

- Dans la base cliente

Dim Rep as Boolean

Rep = OuvrirForm
("fattente",acNormal,"","",acFormEdit,acWindowNormal,"")

Note: La syntaxe suivante assure d'appeler la fonction
dans labonne base externe.
Rep = NomTaBaseExterne.OuvrirForm
("fattente",acNormal,"","",acFormEdit,acWindowNormal,"")

Et dans ta Macro, tu peux:
ExecuterCommande OuvrirForm
("fattente",acNormal,"","",acFormEdit,acWindowNormal,"")

Espérant répondre à tes attentes.
Cordialement.

0 new messages