CommonDialog Problème ActiveX
La0o34
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
OlivrT Messages postés 323 Date d'inscription Statut Membre Dernière intervention -
OlivrT Messages postés 323 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai créé une base de donnée ACCESS il y a quelque temps avec du code VBa associé. Seulement j'étais en environnement ACCESS 2003, or maintenant à la version 2007 et 2010, mes CommonDialog pour récupérer le chemin d'un fichier par l'intermédiaire d'une boite de dialogue ne fonctionne plus.
Voici le message d'erreur correspondant :
Ce code était fonctionnel quand je l'ai fait.
Mes ligne de code correspondant :
J'ai créé une base de donnée ACCESS il y a quelque temps avec du code VBa associé. Seulement j'étais en environnement ACCESS 2003, or maintenant à la version 2007 et 2010, mes CommonDialog pour récupérer le chemin d'un fichier par l'intermédiaire d'une boite de dialogue ne fonctionne plus.
Voici le message d'erreur correspondant :
Erreur d'exécution : 429 Un composant ActiveX ne peut pas créer d'objet.
Ce code était fonctionnel quand je l'ai fait.
Mes ligne de code correspondant :
Set CD = CreateObject("MSComDlg.CommonDialog") With CD .MaxFileSize = 400 .InitDir = "C:\" .CancelError = False .DialogTitle = "Cherchez votre fichier Parcelle" .Filter = "Fichiers Excel Parcelle (*.xls ; *.xlsx)|*.xls;*.xlsx| Tous les fichiers (*)| *.*" .FileName = "" .FilterIndex = 1 .ShowOpen If CD.FileName = "" Then If MsgBox("Veuillez prendre votre fichier avant de continuer svp!" & Chr(10) & "Voulez-vous annuler l'importation ?", vbYesNo) = vbYes Then GoTo fin Else GoTo debut End If End If End With debut3:
A voir également:
- CommonDialog Problème ActiveX
- Flash player activex - Télécharger - Divers Web & Internet
- Activex/com issue - Forum Windows 10
- Flash player activex version 11 - Forum Logiciels
- Activex firefox - Forum Windows
- Windows live mesh activex - Forum Windows
5 réponses
Certainement mais il me manque peut être un dll ou autre chose permettant d'ouvrir l'objet CommonDialog, je pense.
Salut,
lorsque ton code plante et que tu es dans la fenêtre de saisie du code, tu fais arrêter et tu vas ensuite regarder dans le menu outlils/référence pour voir s'il ne manque rien...
lorsque ton code plante et que tu es dans la fenêtre de saisie du code, tu fais arrêter et tu vas ensuite regarder dans le menu outlils/référence pour voir s'il ne manque rien...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
c'est parce que l'objet n'est pas sur la machine.
Il vaudrait mieux passer par une API pour utiliser directement la boite de dialogue de Windows :
c'est parce que l'objet n'est pas sur la machine.
Il vaudrait mieux passer par une API pour utiliser directement la boite de dialogue de Windows :
'Déclarer l'API dans un module Private Type OPENFILENAME lStructSize As Long hwndOwner As Long hInstance As Long lpstrFilter As String lpstrCustomFilter As String nMaxCustFilter As Long nFilterIndex As Long lpstrFile As String nMaxFile As Long lpstrFileTitle As String nMaxFileTitle As Long lpstrInitialDir As String lpstrTitle As String flags As Long nFileOffset As Integer nFileExtension As Integer lpstrDefExt As String lCustData As Long lpfnHook As Long lpTemplateName As String End Type Public Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long ' Dans l'évènement Click d'un bouton btnSearchMyFile par exemple : Private Sub btnSearchMyFile_Click() Dim OFName As OPENFILENAME OFName.lStructSize = Len(OFName) OFName.hwndOwner = Me.hWnd OFName.hInstance = Application.hWndAccessApp OFName.lpstrFilter = "Fichiers Excel 2003 ou inf (*.xls)" + Chr$(0) + "*.xls" + Chr$(0) + "Fichiers Excel 2007 ou sup (*.xlsx)" + Chr$(0) + "*.xlsx" 'creer un buffer OFName.lpstrFile = Space$(254) 'long max du fichier sur 255 OFName.nMaxFile = 255 OFName.lpstrFileTitle = Space$(254) OFName.nMaxFileTitle = 255 'Répertoire par défault OFName.lpstrInitialDir = "C:\" 'Le titre OFName.lpstrTitle = "Exemple Olivier" OFName.flags = 0 'Affiche la boite de dialogue If GetOpenFileName(OFName) Then MsgBox "File to Open: " + Trim$(OFName.lpstrFile) Else MsgBox "Cancel " End If End Sub