Quelle bibliothéque à cocher??

Résolu
moony01 Messages postés 21 Date d'inscription vendredi 12 novembre 2004 Statut Membre Dernière intervention 27 mars 2007 - 14 janv. 2005 à 12:11
madbob Messages postés 285 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 13 mars 2012 - 19 janv. 2005 à 13:01
Bonjour

Je travaille sous access 2000 et quand je compile ce code, ca donne le message suivant : "Type défini par l'utilisateur non défini" dans la ligne "Dim Fd As FileDialog"

Dim Fd As FileDialog
Set Fd = Application.FileDialog(msoFileDialogOpen)
With Fd
.AllowMultiSelect = False ' multisélection interdite
If .Show = -1 Then
path= .SelectedItems(1)' mémorisation du fichier sélectionné
Else
Exit Sub
End If
End With
Set Fd = Nothing

Quelle "bibliothèque" je dois cocher dans "Outils / Références" ?

N.B : J'ai coché la bibliothèque "Microsoft Office 9.0 Object Library" , tjrs le même message

Merci d'avance

27 réponses

madbob Messages postés 285 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 13 mars 2012
14 janv. 2005 à 19:35
Tout le plaisir est pour nous


suggestion :


Pourquoi ne pas mettre simplement *.* pour le filter, si c'est que tu veux...





observation suite à ton commentaire sur le cancelerror :

Le cancel error est en principe initialisé à false : c'est le
comportement par défaut.



Effectivement si tu le bascules à true (ou à
oui) et qu'il est exécuté avec une annulation on obtient un message qui
n'est pas un message d'erreur mais l'annulation par l'utilsateur. Cette
contreinte bascule si tu maîtrises la gestion des
erreurs, car tu sais ce qu'elle veut dire, et tu décides alors de
ce que
tu en fait.







'* Mise en place de la gestion des erreurs

onerror goto MesErr


set ....

With dlg



.DialogTitle = "selectionner un fichier" 'titre de la
boite



.Filter = "
(*.*)|*.*"



.InitDir = "T:"
'repertoire par defaut


.CancelError = True 'pour intercepter toutes les anomalies


.Flags = tacmCdlOfnHideReadOnly + tacmCdlOfnPathMustExist


.ShowOpen


End With





'Doc_Chemin est la zone de texte recevant le chemin du fichier


If obj.FileName <> "" Then


Doc_Chemin.Value = obj.FileName


End If


'* gestion des erreur cancelerror paramétré sur oui/true

MesErr:

If Err.number <> 32755 then


msgbox err.number & "#"& err.description

endif








madbob
3
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
14 janv. 2005 à 13:12
Je crois que c'est :

comdlg32.ocx

It@li@
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
14 janv. 2005 à 13:18
dans outils Outils / Composants

It@li@
0
madbob Messages postés 285 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 13 mars 2012
14 janv. 2005 à 13:31
Salut la cie



Moi ça tourne quand je selectionne la référence Microsoft office 10 object librairie


madbob
0

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

Posez votre question
moony01 Messages postés 21 Date d'inscription vendredi 12 novembre 2004 Statut Membre Dernière intervention 27 mars 2007
14 janv. 2005 à 14:14
Merci bcp pour vos réponses, je trouve pas cette référence, je n'ai que "Microsoft Office 9.0 Object Library" et ca marche pas avec, qu'est ca que je fais?
Sinon comment je peux spécifier un dossier par défaut à l'ouverture d'une boite de dialogue (Un lecteur réseau par exemple ou le bureau) avec le controle common dialog?

Merci d'avance.

Moony

N.B: Je travaille avec access 2000 et pas Visual Basic.
0
madbob Messages postés 285 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 13 mars 2012
14 janv. 2005 à 14:33
On a bien compris...



Par contre qu'est-ce que tu voudrai faire ça je suis pas sur d'avoir compris.



Si tu veux obtenir les fenêtre standtart de bilou du utilise le composant que t'a indiqué par
It@li@.



ou tu le fais par la toolbox et en choisissant microsoft common dialog control....

et en dessinant de suite l'objet dans ton form. après y plus qu'a coder



madbob
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
14 janv. 2005 à 15:10
tu dois utiliser le comdlg32.ocx
en cochant Projet...composants....Microsoft Common Dialog Control 6.0

It@li@
0
moony01 Messages postés 21 Date d'inscription vendredi 12 novembre 2004 Statut Membre Dernière intervention 27 mars 2007
14 janv. 2005 à 15:53
Je sais tout ca et c'est deja fait, ce que je veux savoir mnt c'est comment définir un dossier par défaut pour common dialog (Par exemple en cliquant sur ouvrir la boite de dialogue affiche les dossiers du bureau ou un lecteur réseau)?

Pour le message d'erreur j'ai laissé tombé.

Merci encore une fois pour vos réponse.

Moony
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
14 janv. 2005 à 16:08
' Chemin Initial
CommonDialog1.InitDir = "C:"

It@li@
0
moony01 Messages postés 21 Date d'inscription vendredi 12 novembre 2004 Statut Membre Dernière intervention 27 mars 2007
14 janv. 2005 à 16:53
C'est bien ce que je cherche, Merci.
Une autre petite question: Quand je clique sur "Annuler" sans choisir un fichier j'ai un message d'erreur.
Je dois tester sur le bouton cliqué? Si oui quelles propriétés utiliser ?
Merci les gars pour vos promptes réponses.
0
madbob Messages postés 285 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 13 mars 2012
14 janv. 2005 à 18:03
Je pense très sincerement que l'erreur est générée après et pas par la commondialogbox...

C'est après la grouille, tu dois faire quelquechose alors que la chaine que tu utilises est vide....

madbob
0
moony01 Messages postés 21 Date d'inscription vendredi 12 novembre 2004 Statut Membre Dernière intervention 27 mars 2007
14 janv. 2005 à 18:34
T'as raison, l'affectation du chemin à une zone du texte qui causait l'erreur. Voici le code final.

With dlg
.DialogTitle = "selectionner un fichier" 'titre de la boite
.FileName = "" 'on recherche un fichier d'extension txt
.Filter = "Word (*.doc)|*.doc|Excel (*.xls)|*.xls|PDF (*.pdf)|*.pdf|TIFF (*.tif)|*.tif|RTF (*.rtf)|*.rtf|Tous Les Fichiers (*.*)|*.*"
.InitDir = "T:" 'repertoire par defaut
.CancelError = False 'pour ne pas partir en erreur si on click sur annuler
.Flags = tacmCdlOfnHideReadOnly + tacmCdlOfnPathMustExist
.ShowOpen
End With
'Doc_Chemin est la zone de texte recevant le chemin du fichier
If obj.FileName <> "" Then
Doc_Chemin.Value = obj.FileName
End If

Merci pour votre aide et pour votre temps.

Moony
0
moony01 Messages postés 21 Date d'inscription vendredi 12 novembre 2004 Statut Membre Dernière intervention 27 mars 2007
15 janv. 2005 à 09:53
Merci, t'es vraimant gentil, je rectifierai mon code.

Moony
0
moony01 Messages postés 21 Date d'inscription vendredi 12 novembre 2004 Statut Membre Dernière intervention 27 mars 2007
17 janv. 2005 à 17:48
Je voulais juste ajouter que pour le message d'erreur "Type défini par l'utilisateur non défini", j'ai téléchargé la bibliothéque "Microsoft Office 11.0 Object Library" (mso.dll) à partir du site : http://www.dlldump.com/filelistings/m.shtml et j'obtiens plus ce message, j'ai un autre message "Membre de méthode ou de données introuvable" et j'ai le mot en rouge sélectionné.

Dim Fd As FileDialog
Set Fd = Application.FileDialog(msoFileDialogOpen)
With Fd
.AllowMultiSelect = False ' multisélection interdite
If .Show = -1 Then
path= .SelectedItems(1)' mémorisation du fichier sélectionné
Else
Exit Sub
End If
End With
Set Fd = Nothing
0
madbob Messages postés 285 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 13 mars 2012
17 janv. 2005 à 18:10
Salut



Le message est clair il ne reconnait pas le membre (de la classe)

=> la classe qui contient ce membre n'est pas correctement linké au projet sur lequel tu travaille.

Je ne connais pas les circonstances mais tu as peut être un link qui a sauté



As tu fais une recherche via l'explorateur d'objet ?



J'ai xp et access 2000 et ça marche très bien qu'elles sont les autres réferences valides associées à ton projet

madbob
0
madbob Messages postés 285 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 13 mars 2012
17 janv. 2005 à 18:15
Microsoft common dialog control 6 sp3 m'a l'air indipensable

"Contrôle Microsoft CommonDialog 6.0"


madbob
0
moony01 Messages postés 21 Date d'inscription vendredi 12 novembre 2004 Statut Membre Dernière intervention 27 mars 2007
18 janv. 2005 à 10:36
Voici ttes les références cochées dans mon application :

- Visual Basic For Applications
- Microsoft Access 9.0 Object Library
- Microsoft Office 11.0 Object Library
- Microsoft DAO 3.6 Object Library
- OLE Automation
- Microsoft ActiveX Data Objects 2.1 Library
- Microsoft Windows Common Controls-2-6.0(SP4)
- Microsoft Forms 2.0 Objects Library
- Sinus ActiveX-Steuerelement-Modul
- Microsoft Common Dialog Control 6.0
- FILEMGMT 1.0 Type Library
- DriveListBox
- DirListBox
- FileList
- Cdlg
- MSIOFF ActiveX Control module

Merci.
0
madbob Messages postés 285 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 13 mars 2012
18 janv. 2005 à 11:12
Peut-être faut-il que tu hierachises autrement tes ressources avec les
flèches de priorités tu devrais monter Microsoft Common Dialog Control
6.0 dessous OLE Automation.

Il faut éviter d'avoir des conflit liés au polymorphisme, ces conflit
sont résolus par la hiérarchisation et les flèches sont prévues pour ça.

Si vraiment ça ne fonctionne pas, refait un projet minimaliste insère
la comon controle par la boite à outil (la référence correcte et
disponible va être implémentée automatiquement)

Mets ton code et faits la fonctionner



J'ai touché à rien et ça marche et j'ai comme référence dispo :

VB dor applications

Micr.. Access 10.0 object library

OLE Automation

Microsof ActiveX DAO 2.1 Library

Microsoft Comm Dialog Controle 6.0 (SP3)



La référence Microsoft Comm Dialog Controle 6.0 (SP3) a été inséré
directement quand j'ai inséré le composant par la boite à outil...

A+
madbob
0
moony01 Messages postés 21 Date d'inscription vendredi 12 novembre 2004 Statut Membre Dernière intervention 27 mars 2007
18 janv. 2005 à 12:12
Toi tu as "Microsoft Access 10.0 object library" et moi je n'ai que "Microsoft Access 9.0 object library", peut être c'est ca qui cause le problème, Non?

Moony
0
madbob Messages postés 285 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 13 mars 2012
18 janv. 2005 à 12:29
mes certitudes ne sont qu'incertitudes moony01 . Mais je baisse pas les bras



Ton probleme est peut être ailleur moi je ne fait pas de set regarde ce
code et il n'arive pas à instancier il faut peut être pas faire de set
Moi je n'en fait pas

et mon controle est sur mon formulaire



Private Sub Commande1_Click()

On Error GoTo Meserr

Me.CD1.DialogTitle = "Selectionner un fichier text à coder"



'* filtres

If P_Crit = 0 Then

Me.CD1.Filter = "(*.TXT)|*.txt"

ElseIf P_Crit = 1 Then

Me.CD1.Filter = "(*.BMP)|*.bmp"

End If



'* Ouvre le template MS avec le filtre approprié

Me.CD1.ShowOpen



Meserr:

If Err.Number <> 32755 Then

MsgBox Err.Number & Err.Description

End If

End Sub


madbob
0
Rejoignez-nous