|
Responder ![]() |
Autor | |
isaias ![]() Colaborador ![]() Unido: 02/Noviembre/2005 Estado: Sin conexión Puntos: 643 |
![]() Enviado: 09/Mayo/2023 a las 13:02 |
Buenos dias.
Sigo con mis problemas de migracion de access 2003 a 2019. Tengo un formulario de articulos con un icono que al pulsar me abria el cuadro de dialogo de windows para seleccionar la imagen de un articulo y traerme la ruta para mostrarla en el formulario, pero ahora resulta no me abre el cuadro de dialogo. Muestro el codigo que tengo puesto: Private Sub Comando4_Click() ' ------------------------ ' ICONO QUE AL PULSAR ' SALE EL EXPLORADOR PARA ' BUSCAR LA IMAGEN ' ------------------------ ' iUbicacion = ruta -> cuadro de texto que aloja la ruta ' Imagen3 = cfoto -> cuadro de imagen en la que se ve la imagen ' Comando4 = icono camara de fotos -> abre el explorador para buscar la imagen Dim s As String ruta.SetFocus s = OpenCommDlg() If s <> "" Then ruta = s ruta_AfterUpdate End If End Sub Este es el móculo '------------------------------------------------------- ' Open Common Dialog Function '------------------------------------------------------- Function OpenCommDlg() Dim Message$, Filter$, FileName$, FileTitle$, DefExt$ Dim Title$, szCurDir$, APIResults& ' Filter$ = "Imágenes (GIF,PCX,BMP,JPG,JPEG,PNG)" & Chr$(0) & "*.BMP;*.GIF;*.PCX;*.JPG;*.JPEG;*.PNG;" & Chr$(0) & _ "Todos los ficheros (*.*)" & Chr(0) & "*.*;" & Chr(0) Filter$ = Filter$ & Chr$(0) ' FileName$ = Chr$(0) & Space$(255) & Chr$(0) FileTitle$ = Space$(255) & Chr$(0) '* Give the dialog a caption title. Title$ = "Seleccionar imagen" & Chr$(0) ' DefExt$ = "BMP" & Chr$(0) ' extensión por defecto szCurDir$ = CurDir$ & Chr$(0) ' directorio por defecto, el actual '* Set up the data structure before you call the GetOpenFileName OPENFILENAME.lStructSize = Len(OPENFILENAME) 'If the OpenFile Dialog box is linked to a form use this line. 'It will pass the forms window handle. OPENFILENAME.hwndOwner = Screen.ActiveForm.hwnd 'If the OpenFile Dialog box is not linked to any form use this line. 'It will pass a null pointer. 'OPENFILENAME.hwndOwner = 0& OPENFILENAME.lpstrFilter = Filter$ OPENFILENAME.nFilterIndex = 1 OPENFILENAME.lpstrFile = FileName$ OPENFILENAME.nMaxFile = Len(FileName$) OPENFILENAME.lpstrFileTitle = FileTitle$ OPENFILENAME.nMaxFileTitle = Len(FileTitle$) OPENFILENAME.lpstrTitle = Title$ OPENFILENAME.flags = OFN_FILEMUSTEXIST Or OFN_READONLY Or OFN_PATHMUSTEXIST Or OFN_FILEMUSTEXIST OPENFILENAME.lpstrDefExt = DefExt$ OPENFILENAME.hInstance = 0 OPENFILENAME.lpstrCustomFilter = String(255, 0) OPENFILENAME.nMaxCustFilter = 255 OPENFILENAME.lpstrInitialDir = szCurDir$ OPENFILENAME.nFileOffset = 0 OPENFILENAME.nFileExtension = 0 OPENFILENAME.lCustData = 0 OPENFILENAME.lpfnHook = 0 OPENFILENAME.lpTemplateName = 0 If apiGetOpenFileName(OPENFILENAME) <> 0 Then OpenCommDlg = Left$(OPENFILENAME.lpstrFile, InStr(OPENFILENAME.lpstrFile, Chr$(0)) - 1) Else OpenCommDlg = "" End If End Function Gracias por anticipado |
|
Por más difícil que se nos presente una situación, nunca dejemos de buscar la salida ni de luchar hasta el último momento. Albert Einstein
|
|
![]() |
|
emiliove ![]() Administrador ![]() Unido: 16/Junio/2009 Localización: Mexico Estado: Sin conexión Puntos: 5651 |
![]() |
Para abrir un cuadro de dialogo de archivo tenemos la propiedad fileDialog mira como se usa: https://learn.microsoft.com/es-es/office/vba/api/access.application.filedialog
Saludos.
|
|
![]() |
|
isaias ![]() Colaborador ![]() Unido: 02/Noviembre/2005 Estado: Sin conexión Puntos: 643 |
![]() |
Lo primero gracias por tu interes emiliave.
Enumero primero que mi sistema es windows 10 - 64 bits con office 2019. Si tengo que decir que mis conocimientos de vba son muy limitados, pero que gracias a este foro y otros compañeros he conseguido crearme una base de datos personal para la gestion de mi negocio. Ahora al grano, copio el codigo del enlace que pone y me sale ERROR DE COMPILACION: NO SE HA DEFINIDO EL TIPO DEFINIDO .... En el codigo pone que necesita ' Requires reference to Microsoft Office 11.0 Object Library. He buscado en las referencias de VBA y no me aparece esta referencia. Sigo a merced de tu sabiduria, haber si avanzo. Gracias |
|
Por más difícil que se nos presente una situación, nunca dejemos de buscar la salida ni de luchar hasta el último momento. Albert Einstein
|
|
![]() |
|
01loko ![]() Colaborador ![]() Unido: 17/Agosto/2017 Localización: Santander Estado: Sin conexión Puntos: 807 |
![]() |
en mi corto conocimiento cuando te dice "Microsoft Office 11.0 Object Library." se refiere a la librería office versión que tengas instalada, sea 11 o superior
|
|
Recordar de que soy nuevo y estoy aprendiendo.
|
|
![]() |
|
isaias ![]() Colaborador ![]() Unido: 02/Noviembre/2005 Estado: Sin conexión Puntos: 643 |
![]() |
Gracias por tu interes, he revisado eso y tengo activada la Microsoft Office 16.0 Un saludo
|
|
Por más difícil que se nos presente una situación, nunca dejemos de buscar la salida ni de luchar hasta el último momento. Albert Einstein
|
|
![]() |
|
isaias ![]() Colaborador ![]() Unido: 02/Noviembre/2005 Estado: Sin conexión Puntos: 643 |
![]() |
PERDONNNNNNNNNNN No la tenia activada, acabo de hacerla, lo siento muchisimo Un saludo
|
|
Por más difícil que se nos presente una situación, nunca dejemos de buscar la salida ni de luchar hasta el último momento. Albert Einstein
|
|
![]() |
|
isaias ![]() Colaborador ![]() Unido: 02/Noviembre/2005 Estado: Sin conexión Puntos: 643 |
![]() |
Bueno por fin acabo de conseguirlo, y mira que me ha costado pero gracias a emiliove y 01loko, que me han orientado ya esta corregido y funcionando. Y como no a san google.
Comparto el codigo por si a algun compañero en el futuro le es neceario: Private Sub cmdCamaraFotos_Click() ' ------------------------ ' ICONO QUE AL PULSAR ' SALE EL EXPLORADOR PARA ' BUSCAR LA IMAGEN ' ------------------------ ' iUbicacion = ruta -> cuadro de texto que aloja la ruta ' Imagen3 = cfoto -> cuadro de imagen en la que se ve la imagen ' cmdCamaraFotos = icono camara de fotos -> abre el explorador para buscar la imagen Dim s As String ruta.SetFocus s = buscaArchivo() If s <> "" Then ruta = s ruta_AfterUpdate End If End Sub Public Function buscaArchivo() As String ' FUNCION QUE ABRE EL CUADRO DE DIALOGO PARA ELEGIR IMAGENES Dim fDialog As Office.FileDialog Set fDialog = Application.FileDialog(msoFileDialogFilePicker) With fDialog .AllowMultiSelect = False .ButtonName = "Seleccionar un imagen" .Title = "Seleccionar el archivo" .InitialFileName = "\\******\******\" '---> Aqui esta indicada la ruta inicial del cuadro de dialogo .InitialView = msoFileDialogViewDetails .Filters.Clear .Filters.Add "Tipos de Imagenes: ", "*.jpg; *.jpeg; *.bmp; *.gif", 1 .Filters.Add "All Files", "*.*" If .Show = True Then buscaArchivo = .SelectedItems(1) Else MsgBox "Ha pulsado el botón <CANCELAR>." End If End With End Function Gracias a todos los que me han ayudado. Hasta la próxima Pueden cerrar el hilo, un saludo
|
|
Por más difícil que se nos presente una situación, nunca dejemos de buscar la salida ni de luchar hasta el último momento. Albert Einstein
|
|
![]() |
Responder ![]() |
|
Tweet
|
Ir al foro | Permisos de foro ![]() Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |