Migration VBA

Signaler
Messages postés
9
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
6 avril 2009
-
Messages postés
9
Date d'inscription
vendredi 21 septembre 2007
Statut
Membre
Dernière intervention
28 mai 2009
-
Bonjour,

Je dois actuellement faire migrer une application en VBA/Access vers VB.NET ou C# (ces deux derniers étant au choix)
Personnellement je connais beaucoup mieux le C# que le VB.NET mais j'ai cru comprendre qu'il était plus simple de passer du VBA à ce dernier. J'envisage donc encore je faire le travail sur les deux langages.

Plus précisement, le travail consiste donc à développer une application Web sous Visual Sudio 2005 afin que l'ancienne application qui a été développée en VBA sous Access, puisse fonctionner sur le site de l'entreprise, et qui dit Web, dit que j'aurai donc à associer de l'ASP, mais là n'est pas le problème.

Mes connaissances se résument à ça : étant dans ma première année post-diplôme, je ne connais pas grand chose des "vieux" langages, j'ai donc développé pendant 2 ans en C#, quelques mois en VB.NET, mais concernant le VBA et Access, je n'y connais absolument rien, c'est d'ailleurs là qu'est mon problème.

J'ai d'abord pensé à tout réécrire, en voyant au fur et à mesure chaque problème de portage du code, mais ça s'avère beaucoup plus long et compliqué que prévu.

Ensuite j'ai été voir du côté des convertisseurs, il y en a trois en particulier qui ont retenu mon attention :
- AccessToVB
- Access 2000 to Visual Basic 6 Object Converter
- Artinsoft Visual Basic Upgrade Companion DE

les deux premiers portent bien leur noms, il sagit de convertir du VBA en VB6, le 3eme soft s'occupe de traduire les projets VB6 en VB.NET/C#

n'ayant pas trouvé de convertisseur qui fasse directement la traduction du VBA vers mes deux langages, j'ai donc pensé que l'utilisation des premiers convertisseur et du 3eme était forte interessante afin de pouvoir faire une conversion de la forme : VBA > VB6 > VB.NET / C#

Mais là aussi j'ai un problème, comme je l'ai dis plus haut, je ne maîtrise pas du tout Access, et donc je n'arrive pas à utiliser ces fameux convertisseurs.

Donc si vous avez des tuyaux, comme des exemples, des tutoriaux, d'autres logiciels de conversion automatique, des conseils au niveau de l'utilisation de ces deux premiers logiciels avec Access, ou encore autre chose auquel je n'aurai pas pensé, votre aide sera la bienvenue.

Je reste à votre disposition au cas où il y aurait des questions ou si je me serait mal exprimé sur certains points,
Merci d'avance pour votre aide

14 réponses

Messages postés
13
Date d'inscription
mardi 24 mars 2009
Statut
Membre
Dernière intervention
12 mars 2010

Bonjour ,


je dois faire à peu pres le meme travail que toi ,j'ai a faire une migration d'une interface vba access 2003 a vb.net avec du vba , sous sql server 2003.

je sais pas combien ca va prendre en terme de temps tout en sachant que j'ai une base de données sql de 40 tables
T'en est ou toi ?
T'as des solutions ? des pistes ? Des tutoriels ?

merci d'avance
adil
Messages postés
9
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
6 avril 2009

par rapport au temps que ça devrait prendre, je dirai que ça dépend beaucoup des compétences de chacun...

mais sinon là j'en suis toujours à traduire le même formulaire access, ce que j'ai essayé de faire c'est de copier tout le code vba de ce formulaire depuis access pour le coller dans la solution du site web de l'entreprise sous visual studio, afin de voir directement ce qu'il se passe

j'ai plusieurs problemes, tu devrais surement avoir les memes aussi, a moins que tu n'ai trouvé une autre maniere de faire

d'abord, le code fait souvent appel a d'autres fonctions, qui se trouvent respectivement dans des tables ou modules de la base access, donc ne voulant pas intégrer toutes ces tables, je rajoute dans mon application web, seulement les fonctions qui m'interessent, celles donc qui vont être utiles à mon formulaire

ça, c'est un de mes problemes, mais mon probleme principal c'est de trouver, a chaque fois, l'équivalent en vb.net de ce vba, puisque pas mal de fonctions disparaissent pour laisser place a d'autres, et il faut trouver ces autres etc

récemment, j'en avais marre de devoir débugger tout ce code mentallement, puisque je ne peut pas faire de debug simple pour comprendre les erreurs, car j'ai, comme dis précédemment, énormément d'erreur de syntaxe
ce que j'ai fais donc, c'est de mettre en commentaire provisoire ce que je trouvais pas tout de suite, et par la suite je pourrais utiliser le debug afin de mieux comprendre certain mecanismes a effectuer pour ce forumulaire

voilà donc la voie que j'ai choisi de suivre, je suis certain que ce n'est pas la meilleure, mais je n'ai trouvé que ça

en ce qui concerne les pistes etc, j'ai gardé quelques liens, peut etre qu'ils te seront utiles, mais moi je n'ai pas trop trouvé mon bonheur dedans

voici quelques liens pour les convertisseurs que j'ai pu trouver :
http://www.granite.ab.ca/access/accesstovb.htm
http://www.diamondedge.com/download/acdemo.html
http://members.shaw.ca/irie/iriehome.htm
http://www.microtools.us/_download.aspx?CID=C071932
http://www.freedownloadmanager.org/downloads/convert_access_forms_software/
http://www.cnet.com/topic-software/microsoft-access/microsoft-visual-basic.html

j'ai aussi gardé de côté quelques tutoriaux, topic de forum plus ou moins interessants etc, mais pareil, je n'ai pas trop été aidé :
http://morpheus.developpez.com/vsto2/
http://www.developpez.net/forums/d649116/hardware-systemes-logiciels/microsoft-office/access/vba-access/conversion-vba-vb/
http://www.codeproject.com/KB/work/CSXDock.aspx
http://blogs.msdn.com/pstubbs/archive/2004/01/15/59049.aspx
http://access.developpez.com/cours/?page=courstuto#langagevba
http://dotnet.developpez.com/cours/?page=vbnet
http://plasserre.developpez.com/v7-1.htm
http://mhubiche.developpez.com/vba/fiches/syntaxes/bases/
http://blog.crowe.co.nz/archive/2006/03/02/589.aspx
http://migrationguide.artinsoft.com/
http://www.aivosto.com/project/vbnet.html
http://officesystemaccess.seneque.net/vba/nz.htm
http://www.pinvoke.net/

j'ai aussi trouvé une video des microsoft techdays 2007 assez interessante :
http://www.microsoft.com/france/vision/WebcastMsdnTechDays.aspx?EID=18477e61-6f87-4073-9929-0c9b57901c61

voilà donc j'espere que tu trouvera au moins une chose qui t'aidera dans tout ces liens que j'avais mis de côté, tiens moi au courant ;)
Messages postés
9
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
6 avril 2009

par exemple là je cherche comment je devrais remplacer un simple "Me.name" :s
Messages postés
13
Date d'inscription
mardi 24 mars 2009
Statut
Membre
Dernière intervention
12 mars 2010

Bonjour,
merci bcp pour la reponse et surtt pour les liens , je vais bientot m'y mettre car j'etais en congés.


sinon est ce que tu px m'envoyer le debut ou si possible une partie d ton code source car je connais pas comment se proceder , j'ai l'ancien code source mais j'ai du mal a demarrer , je t serais reconnaissant .


par contre je dois donner un compte rendu a mon encadrant donc je sais pas quoi repondre au niveau du delai (j'ai 46 tables ds la base de données), de la procedure a suivre pour la migration.


sinon t'as commencé par le portage des tables ou les formulaires ? ou comment t'as commencé ta migration .
merci d'avance et bonne continuation .

adil
Messages postés
9
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
6 avril 2009

pour mon code source, j'ai pas vraiment réussi a faire quelque chose, je suis toujours bloqué à un endroit, et mon code n'est pas vraiment très bon, donc je préfère ne pas te le montrer pour t'éviter de t'induire en erreur

j'ai aussi l'ancien code source, et j'ai aussi beaucoup de mal à démarrer, apparemment on est dans la même m**** :)

niveau délai, je ne sais pas non plus combien de temps ça devrait prendre, tu peux répondre que tu ne sais pas mais qu'en voyant les choses avancer, tu pourrais mieux estimer le temps restant

en fait on m'a demandé de faire un formulaire, mais il est lié à quelques tables, donc je les fais en même temps, c'est pas comme toi qui doit toutes les faire, mais je suppose qu'il serait plus judicieux de commencer par les tables, à cause des trop grandes dépendances que demandent les formulaires, mais ce n'est qu'une supposition, je ne suis pas du tout expérimenté là dedans

là j'essaye plutôt de traduire le VBA en C# plutôt qu'en VB.NET, mais j'ai des erreurs étranges avec l'ASP, dès que j'aurai un code concret et pas merdique, je pourrais te montrer pour te donner des idées.

mais n'hésite pas à me faire par de ton code si tu as une question précise ou autre, ça m'étonnerai que je puisse t'aider, mais on ne sait jamais, et puis comme ça je pourrais voir à quoi ressemble ton code

bonne continuation ;)
Messages postés
13
Date d'inscription
mardi 24 mars 2009
Statut
Membre
Dernière intervention
12 mars 2010

Bonjour,


merci pour ta reponse , moi j'ai du mal a commencer , par contre je vais convertir le VBA_Access au VB.NET , mais le probleme c'est que mon code VBA attaché a Acces est en .MDB et pour faire cette conversion il faut qu'il soit en .ADP , donc je sais pas comment je vais faire , a moins que je vais trouver encore un convertisseur (.ADP to .MDB).


Sinon t'as commencé par quoi au juste pour ton projet ?


merci

adil
Messages postés
9
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
6 avril 2009

j'ai copié/collé le code VBA dans un fichier VB.NET, et je corrige les erreurs, mais c'est le gros bordel je dois dire, je pense qu'il y a une meilleure solution
Messages postés
13
Date d'inscription
mardi 24 mars 2009
Statut
Membre
Dernière intervention
12 mars 2010

Oui peut etre on peut tenter la copie du code , mais ta copié quoi toi au juste?


t'es allé dans source et ta copié  quel fichier avec quel extension car moi dans ce dossier j'ai des sous dossiers (forms, macros,modules,pages,reports settings) mais dans le sous dossier forms y'a plusieurs fichiers .
merci
a toi
PS : je suis pas encore jeune diplomé , je suis stagiaire , tu travailles ou toi ?

adil
Messages postés
9
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
6 avril 2009

je sais même pas depuis quelle extension j'ai copié le code

en fait je le fais depuis Access, en cliquant sur le bouton "code" il m'y donne accès, et à partir de là je vois le code de "Modules", "Modules de classe", et "Microsoft Access Objets de classe"

et c'est à partir de là que j'ai copié le code de mon formulaire
Messages postés
13
Date d'inscription
mardi 24 mars 2009
Statut
Membre
Dernière intervention
12 mars 2010

Moi j'ai pas trouvé le bouton code dans Access , je travaille avec Access 2007.
Sinon dans Access dans le menu en haut , Database Tools y'a un boutton Visual Basic , j'ai cliqué dessus et il m'a ouvert un projet Visual basic avec du code source . 

adil
Messages postés
9
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
6 avril 2009

ok, moi c'est avec Access 2000 que je travaille, mais si tu vois le code source c'est que t'es au bon endroit, le bouton à sûrement juste changé de nom avec les versions d'Access
Messages postés
9
Date d'inscription
vendredi 21 septembre 2007
Statut
Membre
Dernière intervention
28 mai 2009

Bonjour,
ca fait longtemps que t'as pas donné de nouvelles de ton projet , t'en es ou ?
Moi j'ai crée les formulaires (63 formulaires) et la je dois coder mes boutons et listes , je suis vraiment bloquer , sinon t'as porté ton code VBA et tu l'as adapté au VB.NET ou C# ?

sinon t'as fait quoi d'autres ?
Bien a toi

Adil
Messages postés
9
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
6 avril 2009

Bonjour,

au départ j'avais commencé le portage sur VB.NET, et je me suis retrouvé bloqué par des erreurs que je ne comprenais pas trop
donc, connaissant mieux le C#, je me suis rabattu à recommencer le portage sur ce langage, mais je me retrouve à chaque fois bloqué par différentes syntaxes (DoCmd.Hourglass ; WebControls.ListBox.Column ; ...)

il semblerait que le portage soit plus compliqué sur C#

mais c'est très frustrant de se retrouver devant une fonction que l'on ne sait pas de quelle manière interprêter dans un autre langage, surtout que Google n'est pas du genre à décoincer ce genre de problèmes.

je suis à la limite de jeter l'éponge là, j'ai pratiquement rien réussi a faire depuis 2 mois et ça commence vraiment à me saouler.

je ne pense pas que je pourrais vraiment t'aider à te débloquer, mais je te souhaite bonne chance
Messages postés
9
Date d'inscription
vendredi 21 septembre 2007
Statut
Membre
Dernière intervention
28 mai 2009

Bonjour,
Moi je te conseille deja de créer tes formulaires sous Visual Studio sans code et aprés tu peux soit porter ton code VBA et l'adapter au code VB.NET soit de coder à nouveau en VB.NET.

Bon courage .

Adil