|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mars 2007 Messages : 26 ![]() |
Bonjour,
J'ai lu et relu le tuto "Comment déployer vos applications professionnelles développées avec Microsoft Access 2007 en incluant le Runtime" dans tous les sens et cherché un peu dans les forum, mais je ne trouve pas vraiment réponse à ma question. Je voudrais développer une application (avec formulaires, requetes, etats) à partir d'une BD "type source". C'est-à-dire que je voudrais pouvoir installer cette appli sur n'importe quel poste possédant un BD de même nom et avec les mêmes tables que ma BD "type". J'ai compris qu'il fallait que je lie les tables de ma BD type source à ma BD comprenant les etats, formulaires, etc de mon appli, et qu'ainsi je peux installer sur un autre poste mon appli mais uniquement si la BD sur le 2e poste se trouve exactement au même endroit; même chemin. Ma question : n'est-il pas possible d'utiliser le chemin relatif ? ou bien de spécifier le chemin de la BD source (tables à lier) lors de l'installation ? |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() |
Bonjour,
Si effectivement la base Frontale (application) est susceptible de voire ses tables dans une base de données présente dans des chemins différents, il faut que tu mettes en place un processus de rattachement dynamique avec une notion de "Première utilisation" qui oblige l'utilisateur à lier ses table lui-même la première fois qu'il ouvre son appli. Bien entendu, le même processus s'exécutera à chaque utilisation et vérifiera la disponiblité des tables même si c'est pour la forme. Non, il n'existe pas de notion de chemin relatif pour les tables liées. Petite piste pour t'aider à développer ta routine : Code :
Mid$(CurrentDB.TableDefs("Nom d'une table liée").Connect, 11) par exemple Frontal : C:\Applications\MarinaEtSonChat\Dorsale : C:\Applications\MarinaEtSonChat\Data Argy
__________________
Ils comptent sur vous... Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment. Web Site ‡ @Mail Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007 Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010 MDB Viewer : Visionneuse Access v4.0 |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : mars 2007 Messages : 26 ![]() |
La solution qui oblige l'utilisateur à lier ses table lui-même la première fois qu'il ouvre son appli me semble pas mal. Mais à quel endroit devrais-je mettre ce code ?
sur l'événement onLoad du 1er formulaire chargé à l'ouverture de l'appli ? dans ma macro autoexec ? |
|
|
00
|
|
|
#4 |
![]() ![]() ![]() |
Load()...
Dans le formulaire qui fait office de SplashScreen, vs les applications Office. Il est temporisé (5 secondes... ou le temps nécessaire à la définition de paramètres) puis il check les tables avec une fonction cummulative qui retourne un nombre dont la valeurs et connue et qui défini le nombre de table dont le nom est stocké dans une table LOCALE. Tu peux checker chaque liaison pour chaque table liée par précaution mais, observant la situation de tes déploiments, il semble que si une table liée répond favorablement, on peut supposer que les autres aussi, si peu que l'utilisateur n'en ait pas supprimé. Il faut donc que tu empêche l'ouverture de l'application avec un AllowByPassKey à False. Argy
__________________
Ils comptent sur vous... Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment. Web Site ‡ @Mail Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007 Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010 MDB Viewer : Visionneuse Access v4.0 |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : mars 2007 Messages : 26 ![]() |
je vais tenter ... mais ...
Code :
Mid$(CurrentDB.TableDefs("Nom d'une table liée").Connect, 11) |
|
|
00
|
|
|
#6 | ||
|
Invité de passage
![]() Inscription : mars 2007 Messages : 26 ![]() |
En fait je crois qu'il me faudrait qqch dans ce genre là :
Code :
|
||
|
|
00
|
|
|
#7 | ||||
![]() ![]() ![]() |
Bon, voici une fonction écrite sur le pouce pour te donner une idée...
Code :
Code :
Argy
__________________
Ils comptent sur vous... Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment. Web Site ‡ @Mail Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007 Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010 MDB Viewer : Visionneuse Access v4.0 |
||||
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : mars 2007 Messages : 26 ![]() |
Code :
strDatabaseFilename = Mid$(CurrentDb.TableDefs(LinkedTablename).Connect, 11) "erreur d'execution '3265' element non trouvé dans cette collection" c'est quoi cette fonction Mid avec un $ ? |
|
|
00
|
|
|
#9 |
![]() ![]() ![]() |
Mid renvoie un Variant
Mid$ renvoie un String dans : Code :
strDatabaseFilename = Mid$(CurrentDb.TableDefs(LinkedTablename).Connect, 11) L'erreur 3265 dit bien la vérité : la table que tu as passé n'existe pas dans ta base. Argy
__________________
Ils comptent sur vous... Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment. Web Site ‡ @Mail Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007 Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010 MDB Viewer : Visionneuse Access v4.0 |
|
|
00
|
|
|
#10 | ||
|
Invité de passage
![]() Inscription : mars 2007 Messages : 26 ![]() |
Ca y est ca marche ! j'avais pas mis les guillemet autour du nom de ma table ...
Je mets le code pour ceux que ca peut intéresser (très simplifié car je n'ai pas besoin de faire bcp de verif, je voulais juste pouvoir avoir la main lors de l'install ou à la 1e utilisation pour spécifier le bon chemin de la BD) Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com