OVH Cloud OVH Cloud

Ouverture de Form d'une base différente

22 réponses
Avatar
Ayrton [ASC]
Bonsoir à tous,

J'ai un carnet d'adresse complet fait dans Access et qui contient tous mes
contacts ( persos et pros ).
Utilisant une autre application poir le travail, j'aimerais " appeler " mon
formulaire FrmContacts situé dans ma base carnet d'adresses depuis l'appli
dont je me sers au boulot ; en gros, j'aimerais un bout de code VBA que jze
mettrais sur évènement click() d'un bouton et qui m'ouvrirait le formulaire
Contacts qui est dans une autre base ; mes petites connaissances en vba ne
me permettent pas de faire ça tout seul ;-(

J'aimerais bien un petit coup de main s'il vous plait

Merci ;-)

--
@+
Christophe
http://cerbermail.com/?NiMhJk1y8Y
Date : Le 27/07/2005

10 réponses

1 2 3
Avatar
3stone
Salut,

"Ayrton [ASC]"
| J'ai un carnet d'adresse complet fait dans Access et qui contient tous mes
| contacts ( persos et pros ).
| Utilisant une autre application poir le travail, j'aimerais " appeler " mon
| formulaire FrmContacts situé dans ma base carnet d'adresses depuis l'appli
| dont je me sers au boulot ; en gros, j'aimerais un bout de code VBA que jze
| mettrais sur évènement click() d'un bouton et qui m'ouvrirait le formulaire
| Contacts qui est dans une autre base ; mes petites connaissances en vba ne
| me permettent pas de faire ça tout seul ;-(


http://www.mvps.org/accessfr/forms/frm0034.htm


in the pocket ;-)



--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
Ayrton [ASC]
Bonjour *3stone*
Dans ton message de news:%234aC2%,
Tu as pensé très fort :-(*)

Salut,


Salut 3 Stone,


http://www.mvps.org/accessfr/forms/frm0034.htm


in the pocket ;-)


J'y vais de ce pas ;-)
Merci Pierre

--
@+
Christophe
http://cerbermail.com/?NiMhJk1y8Y
Date : Le 27/07/2005

Avatar
Ayrton [ASC]
Re 3 stone,

Je suis désolé mais c'est un peu complexe pour moi ;-(
Je ne sais pas comment appeler cette fonction ni quoi mettre comme code sur
mon bouton ;-(
J'ai bie nrécupéré la fonction et je l'ai mise dans un nouveau module mais
je sèche un peu après........

Merci

--
@+
Christophe
http://groups.google.fr/group/microsoft.public.fr.outlookexpress6?hl=fr
Date : Le 27/07/2005
Avatar
3stone
Salut,

"Ayrton [ASC]"
| Je suis désolé mais c'est un peu complexe pour moi ;-(


Mais non, mais non...



| Je ne sais pas comment appeler cette fonction ni quoi mettre comme code sur
| mon bouton ;-(
| J'ai bie nrécupéré la fonction et je l'ai mise dans un nouveau module mais
| je sèche un peu après........


Tu l'a mise dans un module général, onglet Module... OK
tu as sauver le module sous un autre nom que la fonction... OK
(je te conseille de préfixer le nom des modules par "mod_")


Tu y trouve donc la fonction:

Function fOpenRemoteForm(strMDB As String, _
strForm As String, _
Optional intView As Variant) _
As Boolean


et bien, sous ton bouton, au lieu d'utiliser le standard :

Docmd.Openform "nom du form" ....

tu utilise tout simplement :

Call fOpenRemoteForm( "Chemin et Nom de la base", "nom du form" )


Ok ?


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
Ayrton [ASC]
Bonjour *3stone*
Dans ton message de news:e%,
Tu as pensé très fort :-(*)
Salut,



Re Pierre,

Je suis désolé mais c'est un peu complexe pour moi ;-(



Mais non, mais non...


Si c'est toi qui me le dit, j'ai confiance ;-)


Tu l'a mise dans un module général, onglet Module... OK
tu as sauver le module sous un autre nom que la fonction... OK
(je te conseille de préfixer le nom des modules par "mod_")


J'ai tout fait comme il faut ! Je retiens mes leçons ;-) Et le nom de mon
module s'appelle ModOpenForm
tu utilise tout simplement :

Call fOpenRemoteForm( "Chemin et Nom de la base", "nom du form" )


Ok ?


Yes ! ! ! J'ai tout compris ! Expliqué comme cela, c'est vrai que cela
parait plus simple que quand j'ai vu la taille de la fonction ! Je me suis
fait peur ! ;-)
Mais bon, ça marche pas ;-( Quand je click, il ne se passe rien ; voici le
code :
Call fOpenRemoteForm("C:Documents And SettingsChristopheMes
Documentsbase test.mbd", "Formulaire10")

Normalement, le form que je dois appelé est dans une appli qui est
fractionnée et j'ai oublié de te le dire ; j'ai donc voulu tester dans une
appli qui me sert de tests divers et que j'ai appelé " base test.mdb"; elle
est située dans " Mes Documents " et elle n'est pas partitionnée .
Avant j'avais essayé comme ce que tu m'avais expliqué il y a une huitaine de
jours pour tester une fonction; dans la fenêtre vbe, CTRL+G et j'ai fais :
debug.print fOpenRemoteForm(" C: etc.......) et ça me retourne " FAUX "
comme valeur ; donc j'ia dû me tromper quelque part non ?

Merci

--
@+
Christophe
http://cerbermail.com/?NiMhJk1y8Y
Date : Le 27/07/2005


Avatar
3stone
Salut,

"Ayrton [ASC]"
[...]
| Mais bon, ça marche pas ;-( Quand je click, il ne se passe rien ; voici le
| code :
| Call fOpenRemoteForm("C:Documents And SettingsChristopheMes
| Documentsbase test.mbd", "Formulaire10")


Je viens d'essayer et... cela fonctionne !

Aussi bien avec une (seconde) base à la racine d'un disque
que sur le bureau (et donc avec un nom à espace)


| Normalement, le form que je dois appelé est dans une appli qui est
| fractionnée et j'ai oublié de te le dire ; j'ai donc voulu tester dans une
| appli qui me sert de tests divers et que j'ai appelé " base test.mdb"; elle
| est située dans " Mes Documents " et elle n'est pas partitionnée .
| Avant j'avais essayé comme ce que tu m'avais expliqué il y a une huitaine de
| jours pour tester une fonction; dans la fenêtre vbe, CTRL+G et j'ai fais :
| debug.print fOpenRemoteForm(" C: etc.......) et ça me retourne " FAUX "
| comme valeur ; donc j'ia dû me tromper quelque part non ?


dans l'appel du bouton, tu ajoute bien l'extention ?

"C:Documents and SettingsTotoBureaubd1.mdb"


sinon, place un points d'arrêt sur le nom de la fonction,
clique sur le bouton et avant en pas à pas (F8)
tu pourra contrôler les valeurs qui déconnent...


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
Ayrton [ ASC ]
Re,

" 3stone "

Salut,

Je viens d'essayer et... cela fonctionne !


Mince alors ! ! Comment je me débrouille alors ?

dans l'appel du bouton, tu ajoute bien l'extention ?


oui bien sûr

sinon, place un points d'arrêt sur le nom de la fonction,
clique sur le bouton et avant en pas à pas (F8)
tu pourra contrôler les valeurs qui déconnent...


Apparement, ça déconne ici :
If IsMissing(intView) Then intView = acViewNormal

If Len(Dir(strMDB)) > 0 Then

Ces deux premières lignes restent jaunes après chaque F8 et après Then, le
code va directement sur End IF
Je pense que c'est par là que ça merdouille mais je ne sais pas comment
l'interpreter.
Là je suis à mon boulot et je viens de tester rapidement avec une petite
appli que je viens de faire et j'ai le même résultat, à savoir qu'il ne se
passe rien quand je click, même pas un message d'erreur qui pourrait me
guider.....

Je pensais peut être faire une erreur de saisie en allant trop vite mais
même pas !
Si ça marche avec toi c'est que je fais peut être une erreur qui est juste
devant moi et que je ne vois pas ? C'est malheureusement souvent le cas ;-(

--
Cordialement
Christophe



Après Then, le code s'éxécute juqu'à End If

Avatar
Jessy Sempere [MVP]
Bonjour

Je ne suis pas sûr que la finalité que tu cherches est celle proposée
par 3stone.

Voilà ce que je te propose :

Copis ce code dans un module standard de la base qui "contient"
les formulaires.

'*********************************************
Function fOpenForm(FormName$, Optional View As AcFormView = acNormal, _
Optional FilterName$ = "", Optional WhereCondition$ = "", _
Optional DataMode As AcFormOpenDataMode = acFormPropertySettings, _
Optional WindowMode As AcWindowMode = acWindowNormal, _
Optional OpenArgs$ = "")

DoCmd.OpenForm FormName, View, FilterName, WhereCondition, _
DataMode, WindowMode, OpenArgs

End Function
'*********************************************

Ensuite dans ton autre base, rajoutes la référence de ta base qui contient
les formulaires.

Maintenant, dans cette base, au lieu d'utiliser
Docmd.openform...

utilises :

fOpenForm "tonformulaire", ...

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Ayrton [ ASC ]" a écrit dans le message news:
#i#
Re,

" 3stone "

Salut,

Je viens d'essayer et... cela fonctionne !


Mince alors ! ! Comment je me débrouille alors ?

dans l'appel du bouton, tu ajoute bien l'extention ?


oui bien sûr

sinon, place un points d'arrêt sur le nom de la fonction,
clique sur le bouton et avant en pas à pas (F8)
tu pourra contrôler les valeurs qui déconnent...


Apparement, ça déconne ici :
If IsMissing(intView) Then intView = acViewNormal

If Len(Dir(strMDB)) > 0 Then

Ces deux premières lignes restent jaunes après chaque F8 et après Then, le
code va directement sur End IF
Je pense que c'est par là que ça merdouille mais je ne sais pas comment
l'interpreter.
Là je suis à mon boulot et je viens de tester rapidement avec une petite
appli que je viens de faire et j'ai le même résultat, à savoir qu'il ne se
passe rien quand je click, même pas un message d'erreur qui pourrait me
guider.....

Je pensais peut être faire une erreur de saisie en allant trop vite mais
même pas !
Si ça marche avec toi c'est que je fais peut être une erreur qui est juste
devant moi et que je ne vois pas ? C'est malheureusement souvent le cas
;-(


--
Cordialement
Christophe



Après Then, le code s'éxécute juqu'à End If





Avatar
Ayrton [ ASC ]
Bonjour,

" Jessy Sempere [MVP] "
Bonjour
Voilà ce que je te propose :

Copis ce code dans un module standard de la base qui "contient"
les formulaires.

'*********************************************
Function fOpenForm(FormName$, Optional View As AcFormView = acNormal,
_ Optional FilterName$ = "", Optional WhereCondition$ = "", _
Optional DataMode As AcFormOpenDataMode = acFormPropertySettings, _
Optional WindowMode As AcWindowMode = acWindowNormal, _
Optional OpenArgs$ = "")

DoCmd.OpenForm FormName, View, FilterName, WhereCondition, _
DataMode, WindowMode, OpenArgs

End Function
'*********************************************

Ensuite dans ton autre base, rajoutes la référence de ta base qui
contient les formulaires.


Là , je ne suis pas sûr de te comprendre ;-(
Si je résume: j'ai une appli Test.mbd dans laquelle je colle ton code ;
ensuite sur l'évènement click() du bouton je mets : fOpenForm "MonForm " ;
le form que je veux ouvrir est dans une autre appli que celle où j'ai mis le
code, on est d'accord ?
Donc je doi louper un épisode car quand je click, cette fois -ci j'ai un
message d'erreur comme quoi il ne trouve pas le nom de mon form

Je pense quie je n'ai pas compris quand tu me dit : "Ensuite dans ton autre
base, rajoutes la référence de ta base qui
contient les formulaires."

Je pense que tu auras compris que je débute en vba et que malgré mes efforts
il y a encore des suptilités qui m'échappent ;-)

Merci Jessy

--
Cordialement
Christophe

Avatar
Jessy Sempere [MVP]
Ok, donc

Base principale qu'on va appeler "BaseCode"
Base avec les formulaires qu'on va appeler "BaseForm"
Et dans "BaseForm", tu as les formulaires, genre : "FormAOuvrir"

Donc dans "BaseForm", tu créé un module standard et tu y mets
le code que je t'ai donné, ensuite tu sauvegarde ce module
(sous : "modOpenForm") et tu fermes cette base de donnée.

Maintenat tu vas dans la base "BaseCode"
Là tu va dans Visual Basic Editor en passant par le menu :
"Outil" - "Macro" - "Visual Basic Editor"
Voilà, c'est ici que tu vas rajouter la référence sur "BaseForm"
Pour ça, tu vas dans le menu :
"Outils" - "Références"
Là tu clicks sur "Parcourir" enfin de sélectionner le fichier :
"c:...BaseForm.mdb"
Voilà, maintenant tu peux fermer Visual basic Editor.

Bon, maintenat, je ne sais pas comment tu veux ouvrir
le formulaire "FormAOuvrir" mais au lieu de faire
Docmd.openForm "FormAOuvrir",
tu fais :
fOpenForm "FormAOuvrir"

C'est bon ????

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Ayrton [ ASC ]" a écrit dans le message news:

Bonjour,

" Jessy Sempere [MVP] "
Bonjour
Voilà ce que je te propose :

Copis ce code dans un module standard de la base qui "contient"
les formulaires.

'*********************************************
Function fOpenForm(FormName$, Optional View As AcFormView = acNormal,
_ Optional FilterName$ = "", Optional WhereCondition$ = "", _
Optional DataMode As AcFormOpenDataMode = acFormPropertySettings, _
Optional WindowMode As AcWindowMode = acWindowNormal, _
Optional OpenArgs$ = "")

DoCmd.OpenForm FormName, View, FilterName, WhereCondition, _
DataMode, WindowMode, OpenArgs

End Function
'*********************************************

Ensuite dans ton autre base, rajoutes la référence de ta base qui
contient les formulaires.


Là , je ne suis pas sûr de te comprendre ;-(
Si je résume: j'ai une appli Test.mbd dans laquelle je colle ton code ;
ensuite sur l'évènement click() du bouton je mets : fOpenForm "MonForm " ;
le form que je veux ouvrir est dans une autre appli que celle où j'ai mis
le

code, on est d'accord ?
Donc je doi louper un épisode car quand je click, cette fois -ci j'ai un
message d'erreur comme quoi il ne trouve pas le nom de mon form

Je pense quie je n'ai pas compris quand tu me dit : "Ensuite dans ton
autre

base, rajoutes la référence de ta base qui
contient les formulaires."

Je pense que tu auras compris que je débute en vba et que malgré mes
efforts

il y a encore des suptilités qui m'échappent ;-)

Merci Jessy

--
Cordialement
Christophe





1 2 3