Urgent svp j'ai beoin que vous m'aidiez

cs_amer_ezahir Messages postés 133 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 20 septembre 2010 - 16 sept. 2005 à 02:41
LABCODES Messages postés 8 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 19 septembre 2005 - 23 sept. 2005 à 07:22
salut les amis ;
svp j'ai besoin de votre aide ;
j'ai un problème avec mon application ; quand je l'ai installé sur pc qui ne contien pas de visual basic tout ça marche bien ;
mais quand j'ai changé du poste sachant que ce dernier a le même System d'exploitation 'XP proffessionel service Pack 2' il me donne l'erreur ci-dessous quand je veux afficher une état 'datareport' avec ADO 2.7 :

Erreur d'execution '372'


impossible de charger le contrôle 'DataReport' à partir de C:\windows\system32\MSDBRPTR.DLL. votre version de C:\WINDOWS\System32\MSDBRPTR.DLL est peut être obsolète. vérifier que vous utilisez la version du contrôle fournie avec votre application.

merci pour tout aide et à bientôt!!!

13 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
16 sept. 2005 à 03:11
salut,
bah il te faut juste retrouver la bonne version de ton contrôle et le replacer dans ton répertoire système....

ps : essai, pour tes prochains topics, de mettre des sujets plus éloquent
PCPT
0
LABCODES Messages postés 8 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 19 septembre 2005
16 sept. 2005 à 10:32
Bonjour,

Voilà le problème auquel je ne trouve pas de solution, après pas mal de recherches.

J'ai créé deux applications sous Access 2000 (en n'utilisant pas toujours le même poste de travail et la même version. Les références Adox étant différentes, il me fallait donc les changer lorsque je passais à une version antérieure). Mais tout fonctionne normalement dans cet environnement.

La base des données se trouve sur le serveur et la base programme sur le poste de travail.

Je fais la migration vers Access 2003, environnement Xp professional.

Lorsque lance une requête Sql (surle même poste), dans une des deux applications; je me retrouve avec une erreur d'exécution 3709 "Impossible d'utiliser cette connexion pour effectuer cette opération. Elle est fermée ou non valide dans ce contexte".
Curieusement dans l'autre application, cela fonctionne normalement. A noter que sur un autre poste, j'ai systématiquement l'erreur.

J'ai vérifié les références, elles sont totalement identiques et dans le même ordre. L'ouverture de la base s'effectue de la même façon et les requêtes sont écrites également de façon identique.

Alors, je ne comprends pas.
Je cherche mais ne trouve pas.
Si quelqu'un a une idée !

Merci à la communauté

Un amateur un peu averti en difficulté
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
16 sept. 2005 à 14:51
Il me semble que j'ai déjà eu ce genre d'erreur.

J'avais fait des applis sous 2000 et un poste avec office 2003 ne marchait pas.

Il a fallut télécharger des drivers pour que ça marche, mais je ne saurais dire lesquels...
TBBUIM
0
LABCODES Messages postés 8 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 19 septembre 2005
16 sept. 2005 à 17:03
Merci pour la piste. Entre temps, jJ'ai encore fait différents essais :



<LI>en convertissant la base en question</LI>
<LI>en créant une nouvelle base et en important tout le contenu de la base programme.</LI>
Toujours la même erreur.
Ce qui est curieux c'est que cela fonctionne dans un programme et pas dans l'autre.

J'explore la piste

Lab Codes
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Doro81079 Messages postés 380 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 24 février 2015 56
17 sept. 2005 à 06:27
bonsoir,


pour labcodes le mieux pour toi c'est de faire un nouveau post pour avoir un maximum de réponse à ton problème et pour éviter que le problème de amer_ezahir ne soit pas zapper


pour amer_ezahir je te conseille de refaire le setup...


regarde sur le post de zlub suit les liens et telecharges les appli (istool,innosetup et finddll) et le tuto de darksidious
http://www.vbfrance.com/forum.v2.aspx?ID=545179&post=ok

1 - tu ouvre l'exe avec findll pour savoir quel fichier sont nécessaires pour ton appli
2 - tu crés l'empactage avec vb6
3- tu te sert de istool et innosetup comme dans le tuto de darksidious
4-et dans istool tu corrige le code afin que tes dll et autres soit copiées dans le répertoire de l'appli de façon à ce que ton programme fonctionne même si les versions sont différentes (tu prend comme exemple les fichiers ou il est marquer app)

si tu n'as pas tout compris fais le moi savoir et je te mettrais un exemple....

salut
doro
0
Doro81079 Messages postés 380 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 24 février 2015 56
17 sept. 2005 à 06:45
re,

grace à pcpt je viens de voir un trés bon tuto alors je te file le lien :

http://www.vbfrance.com/tutorial.aspx?ID=238

salut
doro

ps :merci pcpt si seulement je l'avais vu avant.....
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
17 sept. 2005 à 12:11
(par contre, je ne pense pas que çà soit çà son problème....)
PCPT
0
Doro81079 Messages postés 380 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 24 février 2015 56
18 sept. 2005 à 15:36
bonjour tout le monde,

pcpt=> au contraire je pense qu'il devrait refaire son installe afin que les fichiers (avec leur version) dont son appli à besoin soit copier pres de l'exe pour fonctionner correctement.....
et concernant les fichiers systèmes il vaut mieux eviter de les remplacer c'est pour ça que je lui conseille de les copiers dans le repertoire de son appli (j'ai déjà eu le prob)

amer => effectivement tu peux ,si tu aime le bricolage et rafistolage ,récuperer le fichier sur ton système et le copier sur celui de ton pote mais si tu doit distribuer ton appli à 50 personne et que ce problème le fait ne serait ce que sur le pc de 10 personnes ce genre de rafistolage ne fait pas sérieux

donc à toi de voir la solution qui te convient.......

salut
doro
0
LABCODES Messages postés 8 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 19 septembre 2005
18 sept. 2005 à 21:32
Doro et pcpt,

Merci pour vos conseils.
Effectivement, il doit s'agir d'un problème de version et de drivers.
Par contre, je n'utilise pas VBE pour ces applis. Je ne peux donc pas compiler.
Toutefois, disposant de VBE6 sur mon poste j'ai pu utiliser finddll. J'ai pu ainsi repérer les Dll qui sont affichées comme nécessaires à ces applications. Je ne suis toutefois pas certain que cela me donne précisement l'exhaustivité des dll.

En tout cas, je pourrai vérifier cela dès le début de la semaine qui vient (les postes sont au bureau).

Les postes utilisateurs disposent d'Access 2003. Cela marche marche sur certains postes pas sur d'autres.

En tout cas, je vais aller sur le tuto dont Doro m'a communiqué le lien.

Concernant l'envoi du message, c'est une erreur de manipulation. Avec mes excuses à Amer.

Salut

LabCodes
0
Doro81079 Messages postés 380 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 24 février 2015 56
19 sept. 2005 à 02:31
bonsoir,

heu en fait c'était pour AMER donc voila aussi pourquoi il vaut mieux poster dans un nouveau

pour toi je ne pense pas que ça vienne de ça mais du fait que tu es passer à access 2003.....

bon là ça va être une question bête : est ce que tu es sûr que tu ouvres bien cette connection??

moi j'ai déjà eu cette erreur, mais dans un moment d'inattention un peu speed ou je n'avais pas mis base.open (ça arrive j'oublis même le r a string et je cherche pendant 1 heure)

donc le mieux, c'est que tu nous montres le code d'ouverture à ta base de données,
si ce n'est pas ça ,ça vient certainement de la syntaxe qui est différente avec access2003(si c'est du vba)

et sinon c'est comme te l'as dit TBBUIM1 un problème de driver ou autres, et là le mieux c'est d'aller voir sur microsoft....

salut
doro
0
LABCODES Messages postés 8 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 19 septembre 2005
19 sept. 2005 à 10:54
Bonjour,





C’est dur, dur dur !


Je n’ai pas encore trouvé la solution.


Ci-après mon code


Pour information, une autre requête sql dans ma base programme qui fonctionnait ne fonctionne plus (que ce soit sous access 2000 dans le même environnement ou access 2003).


Je m’interroge maintenant sur l’existence de certains paramètres dans la base programme.





MODULE DE CLASSEOUVERTUREFERMETUREBASES


‘La procédure ci-dessous est appelée lorsque je veux lancer une requête sql


‘ elle permet d’ouvrir la base de données qui est séparée de la base programme'ouverte


Public Sub OuvertureBasedonnées()


' ouverture de la base de données


' les variables connection et catalog sont déclarées publiquement


On Error GoTo ErrOuvertureBaseDonnées


ConnectionBd.Open "Provider= Microsoft.Jet.OLEDB.4.0;" & _


"Data Source=d:\_si_dei\SuiviActivitéD.mdb" ' mon poste


'"Data Source=p:\dor\doi\_si_dei\SuiviActivitéD.mdb" ' data source du serveur Dei





Set CatalogBd.ActiveConnection = ConnectionBd


Exit Sub


ErrOuvertureBaseDonnées:


Select Case Err


Case 3705


'MsgBox "Erreur base déjà ouverte " & Err


End Select


End Sub


REQUETE SQL QUI EST APPELEE PAR UN MODULE DE SOUS-FORMULAIRE


Sub MajCodeProjetUneJournée(IdentifiantSalariéJour, IdentifiantProjetSaisi)


Dim RstActivitéSalarié As New ADODB.Recordset


OuvertureFermetureBases.OuvertureBasedonnées


' définition de la requête


SqlInstruction = "SELECT * FROM TbActivitéSalariés " _


& "WHERE (((TbActivitéSalariés.CléActivitésSalariés)= '" & IdentifiantSalariéJour & "'));"


' ouverture du recordset qui prend en compte la requête


‘Le plantage avec erreur 3709se produit sur l’instruction suivante


Call RstActivitéSalarié.Open(SqlInstruction, ConnectionBd, adOpenDynamic, adLockOptimistic)


' mise à jour


If (IsNull(RstActivitéSalarié.Fields("IdentProjetMatin2").Value)) Or (RstActivitéSalarié.Fields("IdentProjetMatin2").Value = 0) Then


RstActivitéSalarié.Fields("IdentProjetMatin2").Value = IdentifiantProjetSaisi


End If


RstActivitéSalarié.Update


RstActivitéSalarié.Close


End Sub


Merci à vous pour vos apports, et si vous avez de nouvelles idées.


LABCODE
0
LABCODES Messages postés 8 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 19 septembre 2005
19 sept. 2005 à 10:54
Bonjour,


C’est dur, dur dur !


Je n’ai pas encore trouvé la solution.


Ci-après mon code


Pour information, une autre requête sql dans ma base programme qui fonctionnait ne fonctionne plus (que ce soit sous access 2000 dans le même environnement ou access 2003).


Je m’interroge maintenant sur l’existence de certains paramètres dans la base programme.





MODULE DE CLASSEOUVERTUREFERMETUREBASES


‘La procédure ci-dessous est appelée lorsque je veux lancer une requête sql


‘ elle permet d’ouvrir la base de données qui est séparée de la base programme'ouverte


Public Sub OuvertureBasedonnées()


' ouverture de la base de données


' les variables connection et catalog sont déclarées publiquement


On Error GoTo ErrOuvertureBaseDonnées


ConnectionBd.Open "Provider= Microsoft.Jet.OLEDB.4.0;" & _


"Data Source=d:\_si_dei\SuiviActivitéD.mdb" ' mon poste


'"Data Source=p:\dor\doi\_si_dei\SuiviActivitéD.mdb" ' data source du serveur Dei


Set CatalogBd.ActiveConnection = ConnectionBd


Exit Sub


ErrOuvertureBaseDonnées:


Select Case Err


Case 3705


'MsgBox "Erreur base déjà ouverte " & Err


End Select


End Sub


REQUETE SQL QUI EST APPELEE PAR UN MODULE DE SOUS-FORMULAIRE


Sub MajCodeProjetUneJournée(IdentifiantSalariéJour, IdentifiantProjetSaisi)


Dim RstActivitéSalarié As New ADODB.Recordset


OuvertureFermetureBases.OuvertureBasedonnées


' définition de la requête


SqlInstruction = "SELECT * FROM TbActivitéSalariés " _


& "WHERE (((TbActivitéSalariés.CléActivitésSalariés)= '" & IdentifiantSalariéJour & "'));"


' ouverture du recordset qui prend en compte la requête


‘Le plantage avec erreur 3709se produit sur l’instruction suivante


Call RstActivitéSalarié.Open(SqlInstruction, ConnectionBd, adOpenDynamic, adLockOptimistic)


' mise à jour


If (IsNull(RstActivitéSalarié.Fields("IdentProjetMatin2").Value)) Or (RstActivitéSalarié.Fields("IdentProjetMatin2").Value = 0) Then


RstActivitéSalarié.Fields("IdentProjetMatin2").Value = IdentifiantProjetSaisi


End If


RstActivitéSalarié.Update


RstActivitéSalarié.Close


End Sub


Merci à vous pour vos apports, et si vous avez de nouvelles idées.


LABCODE
0
LABCODES Messages postés 8 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 19 septembre 2005
23 sept. 2005 à 07:22
Bonjour,

Ne cherchez plus. J'ai trouvé.
Bougre d'idiot que je suis.
Dans le module CLASSEOUVERTUREFERMETUREBASES, je n'ai pas prévu de Case Else. Donc toutes les erreurs autres que 3705 n'étaient pas gérées, et surtout ne donnaient pas lieu à l'affichage d'un messaged'erreur. Or je m'étais trompé dans le nom de la base de données.
Donc le message d'erreur apparaissait dans l'instruction suivante qui appelait le fichier.

Tout est rentré dans l'ordre.

La leçon à retenir est qu'en matière de gestion d'erreurs, il faut toujours prévoir l'imprévisible, donc ne pas oublier Case Else.

En tout cas merci pour vos contributions, j'ai quand même appris des choses.

LABCODES
0
Rejoignez-nous