Bonjour à tous
Pour poser le contexte, et comprendre mon questionnement :
Je viens d’arriver dans une boite pour quelques mois, on me demande de programmer en VBA sous Access, une « appli » qui donne des infos récoltées sur les tables d’une autre application (Great Plains) qui tourne sur un serveur SQL, GP ne retourne pas les informations qu’il faut apparemment, ou du moins, tout est en vrac, il n’y pas les bons traitements, nécessité de faire du copier/coller sous Excel et même rajouter directement des infos manuellement, bref, c’est pas génial génial. Ils disposent déjà d’un fichier Access avec des formulaires et des requêtes Access (pas de VBA), le tout sur un lecteur, et donc le même fichier partagé par tous les utilisateurs (humm), fichier qui fait dans les 50 Mo, et le tout serait lent (pas encore pu tester sur place). De plus, un autre problème se pose : pour pouvoir accéder a ce fichier Access, les administrateurs doivent donner l‘accès en lecture à la BD de Great Plains pour chaque utilisateur, ce qui semble déranger. Sachant aussi que je découvre les particularités de VBA (connaissant plus la prog sous VB, C, Java..) bref, ce genre de programmation « légère » (et encore, plus je découvre VBA, plus je m’aperçois que c est plus un préjugé qu’autre chose, du moins pour un certain type d’appli) me laisse un peu dubitatif, mais bon, j’ai quand même l’impression que ca va faire le boulot, quant à Access, je connaissais un peu
1 - Les tables liées par ODBC : Access télécharge t’il la totalité des tables sur le poste client?
Si non (je me doute bien que non par défaut, le contraire serait surprenant) :
2- Existe-t-il une différence entre une requête (sur ces tables) Access (donc enregistrée comme query dans le fichier Access) et une requête dans une variable string dans du VBA (résultat avec des recordset…)? Par différence, je parle en termes de performance sur le réseau, taille du fichier Access? Car quand certains formulaires sont lancés, on a vraiment le temps d’aller faire un tour prendre un kawa
3 – la solution (rajouter du VBA est elle la bonne?) ou vaut il mieux continuer sur le fichier Access existant, en rajoutant des query Access? Ou carrément passer a du VB, ou tout autre langage? (ca risque d’être refusé)
4- Pour le problème d’accès des utilisateurs a la BD sur SQL server, existe-t-il une autre solution qui satisferait les admin de Great Plains?
5- Question plus spécifiquement VBA :
Admettons que j’ai une table avec nombre x de champs, en passant uniquement par VBA, je suis capable de récupérer le résultat d’une requête select dans un recordset, le résultat étant une liste d’enregistrement, pas de problème pour parcourir le recordset et accéder a chaque champs…..mais, voila, pour l’affichage, si je veux le faire pour un seul enregistrement, en affectant les valeurs d’un seul enregistrement à des boites de texte le représentant, c’est facile, par contre, si je veux afficher la liste entière? La solution des continuous form serait logique, et autant j’arrive a le faire en linkant une table ou une requête au formulaire, autant je n’arrive pas a trouver comment le faire avec seulement du VBA, et ce n’est pas faute d’avoir écumé les différentes faqs et le manuel que j’ai…ca doit pourtant être très facile….y a quelque chose qui a du m’échapper, si quelqu’un avait un bout de code sous la main pour exemple…??
Bref, si de bons samaritains (version VBA geek) parmi vous avaient des réponses ou des pistes, sur une ou toutes mes questions, ce serait très apprécié, merci d’avance!!!!
Partager