CommonDialog Problème ActiveX
La0o34
Messages postés
14
Statut
Membre
-
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
- Windows live mesh activex - Forum Windows
- Probleme avec activeX - Forum Réseaux sociaux
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