empaquetage

Le
Pascal
Bonjour,

une petite appli en vb6 qui tourne à merveille sur MON pc

sur d'autres: erreur N°5 : appel de procedure ou argument incorrect
d'après ce que je peux en déduire c'est à l'ouverture de la base ACCESS
j'utilise la réference dao3.6 object library
ai vérifié sur ces postes, dans les fichiers communs ils possèdent la DAO
360.dll

dans l'empaquetage et deploiement, ce n'est pas clair du tout et n'y arrive
pas
Ma solution est de le faire manuellement sur chaque poste, que dois-je
installer sur ces postes

une grosse aide bienvenue et sans vouloir abusé ou être incorrect c'est très
urgent

merci à vous

Pascal
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jean-marc
Le #15392541
Pascal wrote:
Bonjour,

une petite appli en vb6 qui tourne à merveille sur MON pc

sur d'autres: erreur N°5 : appel de procedure ou argument incorrect
d'après ce que je peux en déduire c'est à l'ouverture de la base
ACCESS j'utilise la réference dao3.6 object library
ai vérifié sur ces postes, dans les fichiers communs ils possèdent la
DAO 360.dll

dans l'empaquetage et deploiement, ce n'est pas clair du tout et n'y
arrive pas
Ma solution est de le faire manuellement sur chaque poste, que dois-je
installer sur ces postes



Hello,

Normalement l'assistant d'empaquetage va faire le nécessaire et créer un
setup
qui contient tout le nécessaire.

Voici les fichiers à redistribuer (dao360.DLL ne suffit pas):

(ce qui suit est un extrait de ce qui est normalement généré par
l'assistant):

[Bootstrap Files]
File1=@VB6STKIT.DLL,$(WinSysPathSysFile),,,7/15/00 12:00:00
AM,101888,6.0.84.50
File2=@COMCAT.DLL,$(WinSysPathSysFile),$(DLLSelfRegister),,5/31/98 12:00:00
AM,22288,4.71.1460.1
File3=@STDOLE2.TLB,$(WinSysPathSysFile),$(TLBRegister),,6/3/99 12:00:00
AM,17920,2.40.4275.1
File4=@ASYCFILT.DLL,$(WinSysPathSysFile),,,3/8/99 12:00:00
AM,147728,2.40.4275.1
File5=@OLEPRO32.DLL,$(WinSysPathSysFile),$(DLLSelfRegister),,3/8/99 12:00:00
AM,164112,5.0.4275.1
File6=@OLEAUT32.DLL,$(WinSysPathSysFile),$(DLLSelfRegister),,4/12/00
12:00:00 AM,598288,2.40.4275.1
File7=@msvbvm60.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,2/23/04
12:00:00 AM,1386496,6.0.97.82

[Setup1 Files]
File1=@VB5DB.DLL,$(WinSysPath),,$(Shared),6/18/98 12:00:00
AM,89360,6.0.81.69
File2=@msjtes40.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,8/10/04 1:00:00
PM,241693,4.0.8618.0
File3=@msrepl40.dll,$(WinSysPathSysFile),,,8/10/04 1:00:00
PM,552989,4.0.8015.0
File4=@msrd3x40.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,8/10/04 1:00:00
PM,315423,4.0.6508.0
File5=@msrd2x40.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,8/10/04 1:00:00
PM,421919,4.0.7328.0
File6=@mswdat10.dll,$(WinSysPathSysFile),,,8/10/04 1:00:00
PM,831519,4.0.6508.0
File7=@mswstr10.dll,$(WinSysPathSysFile),,,8/10/04 1:00:00
PM,614429,4.0.8905.0
File8=@expsrv.dll,$(WinSysPathSysFile),,,8/10/04 2:00:00
PM,380957,6.0.72.9589
File9=@vbajet32.dll,$(WinSysPathSysFile),,,8/10/04 1:00:00
PM,30749,6.0.1.9431
File10=@msjint40.dll,$(WinSysPathSysFile),,,8/10/04 1:00:00
PM,184351,4.0.8905.0
File11=@msjter40.dll,$(WinSysPathSysFile),,,8/10/04 1:00:00
PM,53279,4.0.6508.0
File12=@msjet40.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,8/10/04 1:00:00
PM,1507356,4.0.8618.0
File13=@dao360.dll,$(MSDAOPath),$(DLLSelfRegister),$(Shared),8/10/04 1:00:00
PM,561179,3.60.8618.0
File14=@Project1.exe,$(AppPath),,,10/20/07 7:41:47 PM,16384,1.0.0.0


Avec ceci, ça doit fonctionner :-)

Bonne chance!


--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Pascal
Le #15392531
Hello,
merci de la réponse, elle me sera très utile
je pense que j'ai mieux cerné le problème!
je pensais aussi que l'assistant d'empaquetage faisait le nécessaire,
visiblement NON
j'ai dans le programme un appel à (app.path &"Data" ou Data est un dossier
qui contient entre autre la base Access
Quand je crée avec l'assistant d'empaquetage, il ne me permet pas de créer
ce dossier donc ni dossier et base ne sont mis dans l'empaquetage et par
conséquent transférer sur le nouveau poste
Je doit donc faire appel à vous pour mieux utiliser cet assistant

merci de répondre

Pascal



"Jean-marc" de news: 471a3edb$0$29252$
Pascal wrote:
Bonjour,

une petite appli en vb6 qui tourne à merveille sur MON pc

sur d'autres: erreur N°5 : appel de procedure ou argument incorrect
d'après ce que je peux en déduire c'est à l'ouverture de la base
ACCESS j'utilise la réference dao3.6 object library
ai vérifié sur ces postes, dans les fichiers communs ils possèdent la
DAO 360.dll

dans l'empaquetage et deploiement, ce n'est pas clair du tout et n'y
arrive pas
Ma solution est de le faire manuellement sur chaque poste, que dois-je
installer sur ces postes



Hello,

Normalement l'assistant d'empaquetage va faire le nécessaire et créer un
setup
qui contient tout le nécessaire.

Voici les fichiers à redistribuer (dao360.DLL ne suffit pas):

(ce qui suit est un extrait de ce qui est normalement généré par
l'assistant):

[Bootstrap Files]
File1=@VB6STKIT.DLL,$(WinSysPathSysFile),,,7/15/00 12:00:00
AM,101888,6.0.84.50
File2=@COMCAT.DLL,$(WinSysPathSysFile),$(DLLSelfRegister),,5/31/98
12:00:00 AM,22288,4.71.1460.1
File3=@STDOLE2.TLB,$(WinSysPathSysFile),$(TLBRegister),,6/3/99 12:00:00
AM,17920,2.40.4275.1
File4=@ASYCFILT.DLL,$(WinSysPathSysFile),,,3/8/99 12:00:00
AM,147728,2.40.4275.1
File5=@OLEPRO32.DLL,$(WinSysPathSysFile),$(DLLSelfRegister),,3/8/99
12:00:00 AM,164112,5.0.4275.1
File6=@OLEAUT32.DLL,$(WinSysPathSysFile),$(DLLSelfRegister),,4/12/00
12:00:00 AM,598288,2.40.4275.1
File7=@msvbvm60.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,2/23/04
12:00:00 AM,1386496,6.0.97.82

[Setup1 Files]
File1=@VB5DB.DLL,$(WinSysPath),,$(Shared),6/18/98 12:00:00
AM,89360,6.0.81.69
File2=@msjtes40.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,8/10/04
1:00:00 PM,241693,4.0.8618.0
File3=@msrepl40.dll,$(WinSysPathSysFile),,,8/10/04 1:00:00
PM,552989,4.0.8015.0
File4=@msrd3x40.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,8/10/04
1:00:00 PM,315423,4.0.6508.0
File5=@msrd2x40.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,8/10/04
1:00:00 PM,421919,4.0.7328.0
File6=@mswdat10.dll,$(WinSysPathSysFile),,,8/10/04 1:00:00
PM,831519,4.0.6508.0
File7=@mswstr10.dll,$(WinSysPathSysFile),,,8/10/04 1:00:00
PM,614429,4.0.8905.0
File8=@expsrv.dll,$(WinSysPathSysFile),,,8/10/04 2:00:00
PM,380957,6.0.72.9589
File9=@vbajet32.dll,$(WinSysPathSysFile),,,8/10/04 1:00:00
PM,30749,6.0.1.9431
File10=@msjint40.dll,$(WinSysPathSysFile),,,8/10/04 1:00:00
PM,184351,4.0.8905.0
File11=@msjter40.dll,$(WinSysPathSysFile),,,8/10/04 1:00:00
PM,53279,4.0.6508.0
File12=@msjet40.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,8/10/04
1:00:00 PM,1507356,4.0.8618.0
File13=@dao360.dll,$(MSDAOPath),$(DLLSelfRegister),$(Shared),8/10/04
1:00:00 PM,561179,3.60.8618.0
File14=@Project1.exe,$(AppPath),,,10/20/07 7:41:47 PM,16384,1.0.0.0


Avec ceci, ça doit fonctionner :-)

Bonne chance!


--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;






Christian Hugoud
Le #15392521
Hi,

Dans le temps, il suffisait de lancer le mdac.exe en l'intégrant au soft
d'installation, qui faisait le nécessaire pour installer le jet.

Peut-être dans l'aide de vb il y a quelque chose.

Christian

"Pascal" %
Hello,
merci de la réponse, elle me sera très utile
je pense que j'ai mieux cerné le problème!
je pensais aussi que l'assistant d'empaquetage faisait le nécessaire,
visiblement NON
j'ai dans le programme un appel à (app.path &"Data" ou Data est un
dossier qui contient entre autre la base Access
Quand je crée avec l'assistant d'empaquetage, il ne me permet pas de créer
ce dossier donc ni dossier et base ne sont mis dans l'empaquetage et par
conséquent transférer sur le nouveau poste
Je doit donc faire appel à vous pour mieux utiliser cet assistant

merci de répondre

Pascal



"Jean-marc" message de news: 471a3edb$0$29252$
Pascal wrote:
Bonjour,

une petite appli en vb6 qui tourne à merveille sur MON pc

sur d'autres: erreur N°5 : appel de procedure ou argument incorrect
d'après ce que je peux en déduire c'est à l'ouverture de la base
ACCESS j'utilise la réference dao3.6 object library
ai vérifié sur ces postes, dans les fichiers communs ils possèdent la
DAO 360.dll

dans l'empaquetage et deploiement, ce n'est pas clair du tout et n'y
arrive pas
Ma solution est de le faire manuellement sur chaque poste, que dois-je
installer sur ces postes



Hello,

Normalement l'assistant d'empaquetage va faire le nécessaire et créer un
setup
qui contient tout le nécessaire.

Voici les fichiers à redistribuer (dao360.DLL ne suffit pas):

(ce qui suit est un extrait de ce qui est normalement généré par
l'assistant):

[Bootstrap Files]
File1=@VB6STKIT.DLL,$(WinSysPathSysFile),,,7/15/00 12:00:00
AM,101888,6.0.84.50
File2=@COMCAT.DLL,$(WinSysPathSysFile),$(DLLSelfRegister),,5/31/98
12:00:00 AM,22288,4.71.1460.1
File3=@STDOLE2.TLB,$(WinSysPathSysFile),$(TLBRegister),,6/3/99 12:00:00
AM,17920,2.40.4275.1
File4=@ASYCFILT.DLL,$(WinSysPathSysFile),,,3/8/99 12:00:00
AM,147728,2.40.4275.1
File5=@OLEPRO32.DLL,$(WinSysPathSysFile),$(DLLSelfRegister),,3/8/99
12:00:00 AM,164112,5.0.4275.1
File6=@OLEAUT32.DLL,$(WinSysPathSysFile),$(DLLSelfRegister),,4/12/00
12:00:00 AM,598288,2.40.4275.1
File7=@msvbvm60.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,2/23/04
12:00:00 AM,1386496,6.0.97.82

[Setup1 Files]
File1=@VB5DB.DLL,$(WinSysPath),,$(Shared),6/18/98 12:00:00
AM,89360,6.0.81.69
File2=@msjtes40.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,8/10/04
1:00:00 PM,241693,4.0.8618.0
File3=@msrepl40.dll,$(WinSysPathSysFile),,,8/10/04 1:00:00
PM,552989,4.0.8015.0
File4=@msrd3x40.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,8/10/04
1:00:00 PM,315423,4.0.6508.0
File5=@msrd2x40.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,8/10/04
1:00:00 PM,421919,4.0.7328.0
File6=@mswdat10.dll,$(WinSysPathSysFile),,,8/10/04 1:00:00
PM,831519,4.0.6508.0
File7=@mswstr10.dll,$(WinSysPathSysFile),,,8/10/04 1:00:00
PM,614429,4.0.8905.0
File8=@expsrv.dll,$(WinSysPathSysFile),,,8/10/04 2:00:00
PM,380957,6.0.72.9589
File9=@vbajet32.dll,$(WinSysPathSysFile),,,8/10/04 1:00:00
PM,30749,6.0.1.9431
File10=@msjint40.dll,$(WinSysPathSysFile),,,8/10/04 1:00:00
PM,184351,4.0.8905.0
File11=@msjter40.dll,$(WinSysPathSysFile),,,8/10/04 1:00:00
PM,53279,4.0.6508.0
File12=@msjet40.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,8/10/04
1:00:00 PM,1507356,4.0.8618.0
File13=@dao360.dll,$(MSDAOPath),$(DLLSelfRegister),$(Shared),8/10/04
1:00:00 PM,561179,3.60.8618.0
File14=@Project1.exe,$(AppPath),,,10/20/07 7:41:47 PM,16384,1.0.0.0


Avec ceci, ça doit fonctionner :-)

Bonne chance!


--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;









Jean-marc
Le #15392511
Pascal wrote:
Hello,



Hello,

merci de la réponse, elle me sera très utile
je pense que j'ai mieux cerné le problème!



ok.

j'ai dans le programme un appel à (app.path &"Data" ou Data est un
dossier qui contient entre autre la base Access



Ici, tu as un problème fondamental, et qui n'a rien à voir
avec l'assistant ni quoi que ce soit.

C'est une mauvaise (tm) pratique que de vouloir stoker des données
comme tu le fais dans un répertoire local à App.path.

Nous expliquons tout cela ici :

"Mon programme doit sauver des données, ou peut il le faire et
comment":
http://faq.vb.free.fr/index.php?question3

Tu trouveras aussi de précieux conseils ici:
"Comment trouver l'emplacement des dossiers spéciaux":
http://faq.vb.free.fr/index.php?question`

Sinon, d'une façon générale, ton programme ne doit JAMAIS faire de
suppositions sur l'existence de telle ou telle ressource, dossier,
fichier, etc.

Ca s'appelle faire de la programmation défensive, et c'est la règle absolue.

Avant d'utiliser une ressource, on doit *toujours* vérifier son existence
et sa disponibilité. En cas d'erreur, on doit aussi toujours "rattraper"
l'erreur c'est à dire au minimum fournir un message d'erreur clair,
explcicite
et permettant de comprendre exactement ou on est et ce qui se passe.

Faire ce genre de choses rend en général le code 2 à 3 fois plus long. Un
programme
bien écrit, dans les règles de l'art, comporte en général de 50% à 60% de
code
purement défensif, dédié à la gestion d'erreur.

Pour revenir à ton problème (faire un répertoire data dans App.path et y
copier ta base):
On est d'accord que c'est une mauvaise idée, mais en supposant que tu
veuilles vraiement
faire comme ça, tu as 2 options:
- Utiliser un autre programme d'installation (par exemple Ino Setup ou
InstallShield)
qui permettent de faire plus de choses création de répertoire, etc.)

- Faire un truc plus malin:
. tu ajoutes ton fichier (ta base) aux fichiers d'install, par
défaut dans app.path.
. Lors du démaraage de ton programme, tu regardes si c'est un premier
démarrage ou non
(avec une clé dans le registre, ou un fichier témoin, ou autre chose)
. Si c'est un premier démarrage, tu crées le nouveau répertoire dont tu as
besoin et
tu y copies ou déplace ton fichier

C'est de loin la méthode préférée.

Note que cette méthode marche aussi pour créer un sous répertoire data dans
un des répertoires
recommandés ici: http://faq.vb.free.fr/index.php?question`

Ceci est la bonne (tm) façon de faire :-)

Bonne suite!

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Pascal
Le #15392481
je te remercie pour ces précisions
je vais les appliquées
Pascal

"Jean-marc" de news: 471b17b1$0$29257$
Pascal wrote:
Hello,



Hello,

merci de la réponse, elle me sera très utile
je pense que j'ai mieux cerné le problème!



ok.

j'ai dans le programme un appel à (app.path &"Data" ou Data est un
dossier qui contient entre autre la base Access



Ici, tu as un problème fondamental, et qui n'a rien à voir
avec l'assistant ni quoi que ce soit.

C'est une mauvaise (tm) pratique que de vouloir stoker des données
comme tu le fais dans un répertoire local à App.path.

Nous expliquons tout cela ici :

"Mon programme doit sauver des données, ou peut il le faire et
comment":
http://faq.vb.free.fr/index.php?question3

Tu trouveras aussi de précieux conseils ici:
"Comment trouver l'emplacement des dossiers spéciaux":
http://faq.vb.free.fr/index.php?question`

Sinon, d'une façon générale, ton programme ne doit JAMAIS faire de
suppositions sur l'existence de telle ou telle ressource, dossier,
fichier, etc.

Ca s'appelle faire de la programmation défensive, et c'est la règle
absolue.

Avant d'utiliser une ressource, on doit *toujours* vérifier son existence
et sa disponibilité. En cas d'erreur, on doit aussi toujours "rattraper"
l'erreur c'est à dire au minimum fournir un message d'erreur clair,
explcicite
et permettant de comprendre exactement ou on est et ce qui se passe.

Faire ce genre de choses rend en général le code 2 à 3 fois plus long. Un
programme
bien écrit, dans les règles de l'art, comporte en général de 50% à 60% de
code
purement défensif, dédié à la gestion d'erreur.

Pour revenir à ton problème (faire un répertoire data dans App.path et y
copier ta base):
On est d'accord que c'est une mauvaise idée, mais en supposant que tu
veuilles vraiement
faire comme ça, tu as 2 options:
- Utiliser un autre programme d'installation (par exemple Ino Setup ou
InstallShield)
qui permettent de faire plus de choses création de répertoire, etc.)

- Faire un truc plus malin:
. tu ajoutes ton fichier (ta base) aux fichiers d'install, par
défaut dans app.path.
. Lors du démaraage de ton programme, tu regardes si c'est un premier
démarrage ou non
(avec une clé dans le registre, ou un fichier témoin, ou autre chose)
. Si c'est un premier démarrage, tu crées le nouveau répertoire dont tu as
besoin et
tu y copies ou déplace ton fichier

C'est de loin la méthode préférée.

Note que cette méthode marche aussi pour créer un sous répertoire data
dans un des répertoires
recommandés ici: http://faq.vb.free.fr/index.php?question`

Ceci est la bonne (tm) façon de faire :-)

Bonne suite!

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;






Publicité
Poster une réponse
Anonyme