moony01
Messages postés21Date d'inscriptionvendredi 12 novembre 2004StatutMembreDernière intervention27 mars 2007
-
14 janv. 2005 à 12:11
madbob
Messages postés285Date d'inscriptiondimanche 14 décembre 2003StatutMembreDernière intervention13 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
madbob
Messages postés285Date d'inscriptiondimanche 14 décembre 2003StatutMembreDernière intervention13 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
moony01
Messages postés21Date d'inscriptionvendredi 12 novembre 2004StatutMembreDernière intervention27 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.
moony01
Messages postés21Date d'inscriptionvendredi 12 novembre 2004StatutMembreDernière intervention27 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)?
moony01
Messages postés21Date d'inscriptionvendredi 12 novembre 2004StatutMembreDernière intervention27 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.
moony01
Messages postés21Date d'inscriptionvendredi 12 novembre 2004StatutMembreDernière intervention27 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
moony01
Messages postés21Date d'inscriptionvendredi 12 novembre 2004StatutMembreDernière intervention27 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
moony01
Messages postés21Date d'inscriptionvendredi 12 novembre 2004StatutMembreDernière intervention27 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
madbob
Messages postés285Date d'inscriptiondimanche 14 décembre 2003StatutMembreDernière intervention13 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...
moony01
Messages postés21Date d'inscriptionvendredi 12 novembre 2004StatutMembreDernière intervention27 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?
madbob
Messages postés285Date d'inscriptiondimanche 14 décembre 2003StatutMembreDernière intervention13 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"