OVH Cloud OVH Cloud

Qu'est-ce que j'ai cassé ??!

9 réponses
Avatar
Olivier
Bonjour,

Nous utilisons sur plusieurs postes une Base de Donn=E9e=20
Access (install=E9e sur le r=E9seau) cr=E9=E9e par un ancien=20
coll=E8gue.=20

Depuis hier j'ai un probl=E8me sur mon poste alors qu'il n'y=20
en a pas sur les autres (m=EAme configuration Win 2000=20
Access 2000). Est-ce que j'aurais pu "nettoyer" quelque=20
chose qu'il ne fallait pas toucher?

Voici une description du probl=E8me : Cette BD dispose d'un=20
menu qui s'affiche normalement =E0 l'ouverture, or sur mon=20
poste ce Menu n'apparait plus. A la place Visual Basic=20
s'ouvre avec une bo=EEte dialogue indiquant: "Erreur de=20
compilation. Projet ou biblioth=E8que introuvable"

Ci dessous la copie de ce qu'affiche Visual Basic:

sachant que la ligne " Private Sub FillOptions()" est=20
surlign=E9e en jaune et que "Bds As Database" est surlign=E9=20
en bleu

(fin du message apr=E8s cette insertion)
________________________________________

Option Compare Database
Option Explicit

Private Sub Form_Open(Annuler As Integer)
' Minimise la fen=EAtre base de donn=E9es et initialise le=20
formulaire.
DoCmd.SelectObject acForm, "menu G=E9n=E9ral", True
DoCmd.Minimize
=20
'DoCmd.OpenForm "formulaire1", acNormal, , ,=20
acFormReadOnly, acHidden
=20
=20
' Se positionne =E0 la page de Menu G=E9n=E9ral marqu=E9 comme=20
d=E9faut.
Me.Filter =3D "[ItemNumber] =3D 0 AND [Argument]=20
=3D 'D=E9faut' "
Me.FilterOn =3D True
=20
End Sub

Private Sub Form_Current()
' Met =E0 jour la l=E9gende et remplit la liste d'options.

Me.Caption =3D nz(Me![ItemText], "")
FillOptions
=20
End Sub

Private Sub FillOptions()
' Initialise les options pour cette page de Menu G=E9n=E9ral.

' Nombre de boutons sur le formulaire.
Const conNombreBoutons =3D 8
=20
Dim Bds As Database
Dim RST As Recordset
Dim cha=EEneSQL As String
Dim intOption As Integer

=20
'Initialise le focus au premier bouton dans le=20
formulaire,
' et masque tous les boutons du formulaire
' sauf le premier. Vous ne pouvez pas masquer le=20
champ avec le focus.
Me![Option1].SetFocus
For intOption =3D 2 To conNombreBoutons
Me("Option" & intOption).Visible =3D False
Me("OptionLabel" & intOption).Visible =3D False
Next intOption
=20
' Ouvre la table des =E9l=E9ments du Menu G=E9n=E9ral, et=20
cherche
' le premier =E9l=E9ment pour cette page.
Set Bds =3D CurrentDb()
cha=EEneSQL =3D "SELECT * FROM [=C9l=E9ments du Menu G=E9n=E9ral]"
cha=EEneSQL =3D cha=EEneSQL & " WHERE [ItemNumber] > 0 AND=20
[SwitchboardID]=3D" & Me![SwitchboardID]
cha=EEneSQL =3D cha=EEneSQL & " ORDER BY [ItemNumber];"
Set RST =3D Bds.OpenRecordset(cha=EEneSQL)
=20
' S'il n'y a pas d'options pour cette page de Menu=20
G=E9n=E9ral,
' un message est affich=E9. Autrement, remplit la page=20
avec les =E9l=E9ments.
If (RST.EOF) Then
Me![OptionLabel1].Caption =3D "Il n'y a pas=20
d'=E9l=E9ments pour cette page de Menu G=E9n=E9ral"
Else
While (Not (RST.EOF))
Me("Option" & RST![ItemNumber]).Visible =3D True
Me("OptionLabel" & RST![ItemNumber]).Visible =3D=20
True
Me("OptionLabel" & RST![ItemNumber]).Caption =3D=20
RST![ItemText]
RST.MoveNext
Wend
End If

' Ferme le recordset et la base de donn=E9es.
RST.Close
Bds.Close

End Sub

Private Function HandleButtonClick(intBtn As Integer)
' Cette fonction est appel=E9e quand on clique sur un bouton.
' intBtn indique sur quel bouton on a cliqu=E9.

' Constantes pour les commandes ne pouvant =EAtre=20
ex=E9cut=E9es.
Const conCmdAllerMenuG=E9n=E9ral =3D 1
Const conCmdOuvrirFormulaireAjouter =3D 2
Const conCmdOuvrirFormulaireParcourir =3D 3
Const conCmdOuvrirEtat =3D 4
Const conCmdPersonnaliserMenuG=E9n=E9ral =3D 5
Const conCmdQuitterApplication =3D 6
Const conCmdEx=E9cuterMacro =3D 7
Const conCmdEx=E9cuterCode =3D 8

' Cas particulier d'erreur.
Const conErrDoCmdAnnul=E9 =3D 2501
=20
Dim Bds As Database
Dim RST As Recordset

On Error GoTo TraiterClicBouton_Err

' Cherche l'=E9l=E9ment dans la table des =E9l=E9ments du Menu=20
G=E9n=E9ral
' correspondant au bouton cliqu=E9.
Set Bds =3D CurrentDb()
Set RST =3D Bds.OpenRecordset("=C9l=E9ments du Menu=20
G=E9n=E9ral", dbOpenDynaset)
RST.FindFirst "[SwitchboardID]=3D" & Me![SwitchboardID]=20
& " AND [ItemNumber]=3D" & intBtn
=20
' S'il n'y a pas de correspondance, avertit de=20
l'erreur et quitte la fonction.
If (RST.NoMatch) Then
MsgBox "Erreur lors de la lecture de la table=20
=C9lements du Menu G=E9n=E9ral."
RST.Close
Bds.Close
Exit Function
End If
=20
Select Case RST![Command]
=20
' S=E9lectionne un autre Menu G=E9n=E9ral.
Case conCmdAllerMenuG=E9n=E9ral
Me.Filter =3D "[ItemNumber] =3D 0 AND=20
[SwitchboardID]=3D" & RST![Argument]
=20
' Ouvre un formulaire en mode ajout.
Case conCmdOuvrirFormulaireAjouter
DoCmd.OpenForm RST![Argument], , , , acAdd

' Ouvre un formulaire.
Case conCmdOuvrirFormulaireParcourir
DoCmd.OpenForm RST![Argument]

' Ouvre un =E9tat.
Case conCmdOuvrirEtat
DoCmd.OpenReport RST![Argument], acPreview

' Personnalise le Menu G=E9n=E9ral.
Case conCmdPersonnaliserMenuG=E9n=E9ral
' Prend en charge le cas o=F9 le Menu G=E9n=E9ral
' n'est pas install=E9 (p.ex. Installation=20
minimale).
On Error Resume Next
Application.Run "WZMAIN80.sbm_Entry"
If (Err <> 0) Then MsgBox "Commande=20
indisponible."
On Error GoTo 0
' Mise =E0 jour du formulaire.
Me.Filter =3D "[ItemNumber] =3D 0 AND [Argument]=20
=3D 'D=E9faut' "
Me.Caption =3D nz(Me![ItemText], "")
FillOptions

' Quitte l'application.
Case conCmdQuitterApplication
CloseCurrentDatabase

' Ex=E9cute une macro.
Case conCmdEx=E9cuterMacro
DoCmd.RunMacro RST![Argument]

' Ex=E9cute le code.
Case conCmdEx=E9cuterCode
Application.Run RST![Argument]

' Toute autre commande est inconnue.
Case Else
MsgBox "Option inconnue."
=20
End Select

' Ferme le recordset et la base de donn=E9es.
RST.Close
Bds.Close
=20
TraiterClicBouton_Exit:
Exit Function

TraiterClicBouton_Err:
' Si l'action a =E9t=E9 annul=E9e par l'utilisateur
' ne pas afficher de message d'erreur,
' mais reprendre =E0 la ligne suivante.
If (Err =3D conErrDoCmdAnnul=E9) Then
Resume Next
Else
MsgBox "Une erreur est survenue lors de=20
l'ex=E9cution de la commande.", vbCritical
Resume TraiterClicBouton_Exit
End If
=20
End Function

Private Sub Quitter_Access_Click()
DoCmd.Quit
End Sub
_________________________________________

Vous aurez comprit que je suis un b=E9otien de=20
l'informatique ! ...

Merci de votre aide !

PS: J'ai par ailleurs une autre petite Base de donn=E9e avec=20
un menu g=E9n=E9ral du m=EAme type mais cr=E9=E9 avec l'assitant=20
d'Access et celle-ci fonctionne sans probl=E8me ...

9 réponses

Avatar
Jessy Sempere [MVP]
Bonjour

Tu dois rajouter la référence :
"Microsoft DAO 3.xx Object Library"

Et il peut être utilie de mettre également :
Dim Bds As DAO.Database
Dim RST As DAO.Recordset

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Olivier" a écrit dans le message
news: 022b01c3d9b2$fcdffe50$
Bonjour,

Nous utilisons sur plusieurs postes une Base de Donnée
Access (installée sur le réseau) créée par un ancien
collègue.

Depuis hier j'ai un problème sur mon poste alors qu'il n'y
en a pas sur les autres (même configuration Win 2000
Access 2000). Est-ce que j'aurais pu "nettoyer" quelque
chose qu'il ne fallait pas toucher?

Voici une description du problème : Cette BD dispose d'un
menu qui s'affiche normalement à l'ouverture, or sur mon
poste ce Menu n'apparait plus. A la place Visual Basic
s'ouvre avec une boîte dialogue indiquant: "Erreur de
compilation. Projet ou bibliothèque introuvable"

Ci dessous la copie de ce qu'affiche Visual Basic:

sachant que la ligne " Private Sub FillOptions()" est
surlignée en jaune et que "Bds As Database" est surligné
en bleu

(fin du message après cette insertion)
________________________________________
Avatar
Olivier
OK , Merci, mais où dois-je ajouter ça ?

Désolé, je débute !!!

-----Message d'origine-----
Bonjour

Tu dois rajouter la référence :
"Microsoft DAO 3.xx Object Library"

Et il peut être utilie de mettre également :
Dim Bds As DAO.Database
Dim RST As DAO.Recordset

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Olivier" a écrit
dans le message

news: 022b01c3d9b2$fcdffe50$
Bonjour,

Nous utilisons sur plusieurs postes une Base de Donnée
Access (installée sur le réseau) créée par un ancien
collègue.

Depuis hier j'ai un problème sur mon poste alors qu'il n'y
en a pas sur les autres (même configuration Win 2000
Access 2000). Est-ce que j'aurais pu "nettoyer" quelque
chose qu'il ne fallait pas toucher?

Voici une description du problème : Cette BD dispose d'un
menu qui s'affiche normalement à l'ouverture, or sur mon
poste ce Menu n'apparait plus. A la place Visual Basic
s'ouvre avec une boîte dialogue indiquant: "Erreur de
compilation. Projet ou bibliothèque introuvable"

Ci dessous la copie de ce qu'affiche Visual Basic:

sachant que la ligne " Private Sub FillOptions()" est
surlignée en jaune et que "Bds As Database" est surligné
en bleu

(fin du message après cette insertion)
________________________________________




.



Avatar
Jessy Sempere [MVP]
Re,
OK , Merci, mais où dois-je ajouter ça ?
Désolé, je débute !!!


Pas besoin d'être désolé, on a tous débuté un jour... ;-))
Bientôt ce sera toi qui aideras les autres tu verras...

Donc, ouvre un module de ta base (n'importe lequel)
Ensuite tu vas dans le menu :
"Outils" - "Références"
Là tu n'as plus qu'à cocher la référence (si c'est bien ça le pb) :
"Microsoft DAO x.xx Object Library"

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------

Avatar
Merci de ton aide, on avance, mais pas encore jusqu'a la
solution: J'ai trouvé la référence non cochée
suivante: "Microsoft DAO 3.51 Object Library", mais
lorsque je coche et que je fais OK, j'ai le message "Nom
de module, de projet ou de bibliothèque d'objet déja
utilisé" .

De plus, en observant cette liste, je m'apperçoit qu'une
case cochée porte l'intitulé "MANQUANT : Microsoft DAO
3.51 Object library"

N'est-ce pas mon problème?


-----Message d'origine-----
Re,
OK , Merci, mais où dois-je ajouter ça ?
Désolé, je débute !!!


Pas besoin d'être désolé, on a tous débuté un jour... ;-))
Bientôt ce sera toi qui aideras les autres tu verras...

Donc, ouvre un module de ta base (n'importe lequel)
Ensuite tu vas dans le menu :
"Outils" - "Références"
Là tu n'as plus qu'à cocher la référence (si c'est bien
ça le pb) :

"Microsoft DAO x.xx Object Library"

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------


.




Avatar
Jessy Sempere [MVP]
Re,

Oui effectivement, du dois décocher toutes les
références qui sont marquées "(Manquante)"

En fait le problème vient du fait que tes références n'ont pas
le même chemin d'accès entre les différents poste où se trouve
l'application...

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
a écrit dans le message news:
091401c3d9c0$7714b5a0$
Merci de ton aide, on avance, mais pas encore jusqu'a la
solution: J'ai trouvé la référence non cochée
suivante: "Microsoft DAO 3.51 Object Library", mais
lorsque je coche et que je fais OK, j'ai le message "Nom
de module, de projet ou de bibliothèque d'objet déja
utilisé" .

De plus, en observant cette liste, je m'apperçoit qu'une
case cochée porte l'intitulé "MANQUANT : Microsoft DAO
3.51 Object library"

N'est-ce pas mon problème?


-----Message d'origine-----
Re,
OK , Merci, mais où dois-je ajouter ça ?
Désolé, je débute !!!


Pas besoin d'être désolé, on a tous débuté un jour... ;-))
Bientôt ce sera toi qui aideras les autres tu verras...

Donc, ouvre un module de ta base (n'importe lequel)
Ensuite tu vas dans le menu :
"Outils" - "Références"
Là tu n'as plus qu'à cocher la référence (si c'est bien
ça le pb) :

"Microsoft DAO x.xx Object Library"

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------


.




Avatar
Pierre CFI [mvp]
bonjour
si tu décoche manquant et recoche la dao la plus recente

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
a écrit dans le message de news: 091401c3d9c0$7714b5a0$
Merci de ton aide, on avance, mais pas encore jusqu'a la
solution: J'ai trouvé la référence non cochée
suivante: "Microsoft DAO 3.51 Object Library", mais
lorsque je coche et que je fais OK, j'ai le message "Nom
de module, de projet ou de bibliothèque d'objet déja
utilisé" .

De plus, en observant cette liste, je m'apperçoit qu'une
case cochée porte l'intitulé "MANQUANT : Microsoft DAO
3.51 Object library"

N'est-ce pas mon problème?


-----Message d'origine-----
Re,
OK , Merci, mais où dois-je ajouter ça ?
Désolé, je débute !!!


Pas besoin d'être désolé, on a tous débuté un jour... ;-))
Bientôt ce sera toi qui aideras les autres tu verras...

Donc, ouvre un module de ta base (n'importe lequel)
Ensuite tu vas dans le menu :
"Outils" - "Références"
Là tu n'as plus qu'à cocher la référence (si c'est bien
ça le pb) :

"Microsoft DAO x.xx Object Library"

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------


.




Avatar
Je ne sais pas ce que j'ai pu bricolé, ça marchait
pourtant bien il y a encore quelques jours ...

En décochant le référence manquante puis en cochant la
référence Microsoft DAO 3.0 Object Library, j'ai
maintetant le message "Erreur de Compilation: Erreur de
chargement de la DLL" et la zone bleue est maintenant
sur "currentDB()" de "SetBDS = " (toujours dans
FillOptions)
-----Message d'origine-----
Re,

Oui effectivement, du dois décocher toutes les
références qui sont marquées "(Manquante)"

En fait le problème vient du fait que tes références
n'ont pas

le même chemin d'accès entre les différents poste où se
trouve

l'application...

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
a écrit dans le
message news:

091401c3d9c0$7714b5a0$
Merci de ton aide, on avance, mais pas encore jusqu'a la
solution: J'ai trouvé la référence non cochée
suivante: "Microsoft DAO 3.51 Object Library", mais
lorsque je coche et que je fais OK, j'ai le message "Nom
de module, de projet ou de bibliothèque d'objet déja
utilisé" .

De plus, en observant cette liste, je m'apperçoit qu'une
case cochée porte l'intitulé "MANQUANT : Microsoft DAO
3.51 Object library"

N'est-ce pas mon problème?


-----Message d'origine-----
Re,
OK , Merci, mais où dois-je ajouter ça ?
Désolé, je débute !!!


Pas besoin d'être désolé, on a tous débuté un jour... ;-
))


Bientôt ce sera toi qui aideras les autres tu verras...

Donc, ouvre un module de ta base (n'importe lequel)
Ensuite tu vas dans le menu :
"Outils" - "Références"
Là tu n'as plus qu'à cocher la référence (si c'est bien
ça le pb) :

"Microsoft DAO x.xx Object Library"

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------


.




.





Avatar
Pierre CFI [mvp]
hum 3.0, me parait curieux, décoche et mets plutot 3.51 ou +

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
a écrit dans le message de news: 07ce01c3d9c2$eb9d1910$
Je ne sais pas ce que j'ai pu bricolé, ça marchait
pourtant bien il y a encore quelques jours ...

En décochant le référence manquante puis en cochant la
référence Microsoft DAO 3.0 Object Library, j'ai
maintetant le message "Erreur de Compilation: Erreur de
chargement de la DLL" et la zone bleue est maintenant
sur "currentDB()" de "SetBDS = " (toujours dans
FillOptions)
-----Message d'origine-----
Re,

Oui effectivement, du dois décocher toutes les
références qui sont marquées "(Manquante)"

En fait le problème vient du fait que tes références
n'ont pas

le même chemin d'accès entre les différents poste où se
trouve

l'application...

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
a écrit dans le
message news:

091401c3d9c0$7714b5a0$
Merci de ton aide, on avance, mais pas encore jusqu'a la
solution: J'ai trouvé la référence non cochée
suivante: "Microsoft DAO 3.51 Object Library", mais
lorsque je coche et que je fais OK, j'ai le message "Nom
de module, de projet ou de bibliothèque d'objet déja
utilisé" .

De plus, en observant cette liste, je m'apperçoit qu'une
case cochée porte l'intitulé "MANQUANT : Microsoft DAO
3.51 Object library"

N'est-ce pas mon problème?


-----Message d'origine-----
Re,
OK , Merci, mais où dois-je ajouter ça ?
Désolé, je débute !!!


Pas besoin d'être désolé, on a tous débuté un jour... ;-
))


Bientôt ce sera toi qui aideras les autres tu verras...

Donc, ouvre un module de ta base (n'importe lequel)
Ensuite tu vas dans le menu :
"Outils" - "Références"
Là tu n'as plus qu'à cocher la référence (si c'est bien
ça le pb) :

"Microsoft DAO x.xx Object Library"

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------


.




.





Avatar
Olivier
Je viens de faire quelques vérifications sur le PC de ma
collègue, j'ai pu reperer quelle bibliothèque DAO (3.6)
elle utilise, et j'ai fais une recherche sur mon PC, où
j'ai retrouvé cette DLL (dao360.dll) et maintenant....

Ca fonctionne impec!

Merci beaucoup de votre aide

à charge de revanche si vous avez besoin d'un
conseil .... ...en menuiserie !
-----Message d'origine-----
hum 3.0, me parait curieux, décoche et mets plutot 3.51
ou +


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
a écrit dans le
message de news: 07ce01c3d9c2$eb9d1910$

Je ne sais pas ce que j'ai pu bricolé, ça marchait
pourtant bien il y a encore quelques jours ...

En décochant le référence manquante puis en cochant la
référence Microsoft DAO 3.0 Object Library, j'ai
maintetant le message "Erreur de Compilation: Erreur de
chargement de la DLL" et la zone bleue est maintenant
sur "currentDB()" de "SetBDS = " (toujours dans
FillOptions)
-----Message d'origine-----
Re,

Oui effectivement, du dois décocher toutes les
références qui sont marquées "(Manquante)"

En fait le problème vient du fait que tes références
n'ont pas

le même chemin d'accès entre les différents poste où se
trouve

l'application...

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
a écrit dans le
message news:

091401c3d9c0$7714b5a0$
Merci de ton aide, on avance, mais pas encore jusqu'a la
solution: J'ai trouvé la référence non cochée
suivante: "Microsoft DAO 3.51 Object Library", mais
lorsque je coche et que je fais OK, j'ai le message "Nom
de module, de projet ou de bibliothèque d'objet déja
utilisé" .

De plus, en observant cette liste, je m'apperçoit qu'une
case cochée porte l'intitulé "MANQUANT : Microsoft DAO
3.51 Object library"

N'est-ce pas mon problème?


-----Message d'origine-----
Re,
"Olivier" a
OK , Merci, mais où dois-je ajouter ça ?
Désolé, je débute !!!


Pas besoin d'être désolé, on a tous débuté un jour... ;-
))


Bientôt ce sera toi qui aideras les autres tu verras...

Donc, ouvre un module de ta base (n'importe lequel)
Ensuite tu vas dans le menu :
"Outils" - "Références"
Là tu n'as plus qu'à cocher la référence (si c'est bien
ça le pb) :

"Microsoft DAO x.xx Object Library"

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------


.




.




.