Problema con Objetos

Estoy trabajando con Access 97 y, cuando intento poner un Common Dialog en un formulario, se me muestra el siguiente error: "No tiene la licencia necesaria para utilizar este control ActiveX"
El control en cuestión es: Microsoft Common Dialog Control, version 5.0 (SP2)
Lo he registrado desde Herramientas / Controles ActiveX... Pero no puedo insertarlo.
He reinstalado el Access dos veces, pero el fallo persiste.
¿Cuál es el problema? ¿Qué es lo que debo hacer?

3 Respuestas

Respuesta
1
Claro... el no te deja así simplemente, ya que es un ocx propiamente de visual basic y requiere de librerías de ester programa para trabajar... si quieres trabajar con commond dialogs, lo puedes hacer por código, utilizando api's...
*******************************
coloca el siguiente codigo en un modulo:
**************************
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 Const OFN_HIDEREADONLY = &H4
Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
Declare Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Long
Function DialogoComun(ObjForm As Form, FiltroArch As String, TipoArch As String, DirectIni As String, Tipo As Integer) As String
'*********************************************************************
' Uso de la función
' Path = DialogoComun(Me, "*.mdb", "Título del Mensaje","\\servidor\Directorio")
'*********************************************************************
Dim file As OPENFILENAME, sFile As String, sFileTitle As String, lResult As Long, iDelim As Integer
file.lStructSize = Len(file)
file.hwndOwner = ObjForm.Hwnd
file.flags = OFN_HIDEREADONLY
file.lpstrFile = FiltroArch & String$(250, 0)
file.nMaxFile = 255
file.lpstrFileTitle = String$(255, 0)
file.nMaxFileTitle = 255
'Path Inicial
file.lpstrInitialDir = Environ$(DirectIni)
'Filtro
file.lpstrFilter = TipoArch & Chr$(0)
file.nFilterIndex = 1
'Título del diálogo
file.lpstrTitle = "Importar/Exportar"
If Tipo = 1 Then
lResult = GetOpenFileName(file)
Else
lResult = GetSaveFileName(file)
End If
If lResult <> 0 Then
iDelim = InStr(file.lpstrFile, Chr$(0))
If iDelim > 0 Then
sFile = Left$(file.lpstrFile, iDelim - 1)
End If
DialogoComun = sFile
End If
End Function
**************************
ahora para invocarlo seria:
**************************
Ruta = DialogoComun(Me, "*.txt", "Texto (*.txt)", CurrentProject.Path, 2)
Que lo puedes hacer desde un botón de un formulario, etc...
Att:telemaco
Respuesta
1
¿Posiblemente te haga falta el archivo .ctl del .ocx. o bien ya has intentado desde el ode?
Requieres el developer de microsoft para que sea más sencillo, si gustas puedo enviarte un formulario con el activex que mencionas, pero intenta buscar el .ctl antes de correrlo es posible que no lo tengas y por eso no se registra.
Suerte¡
Gracias. Está arreglado, cuando instalé .NET me cambio alguna de las librerías de Access, lo arreglé instalando las librerías de VB6, que casualmente reescriben las librerías. Muchas gracias de todas formas.
Respuesta
1
¿Estas trabajando como administrador en el PC? ¿O tienes accesos de seguridad restringido?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas