** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Abrir archivos externos
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Abrir archivos externos

 Responder Responder
Autor
Mensaje
javirguez Ver desplegable
Nuevo
Nuevo


Unido: 16/Septiembre/2016
Localización: Pola de Lena
Estado: Sin conexión
Puntos: 7
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita javirguez Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Abrir archivos externos
    Enviado: 16/Septiembre/2016 a las 13:35
Buenas tardes a todos,

Soy bastante nuevo en Access, pero me he creado una pequeña base de datos para mi taller. Ahora querría incluit algo que no se si es posible, o si es muy complejo de hacer, os explico lo que pretendo:

Trabajo en un taller de reparación y tengo una base de datos con las ordenes que vamos haciendo a lo largo del año, simplemente es una tabla inmensa con los diferentes campos que necesito conocer de cada reparación. Lo que quiero meter en un par de botones que por ejemplo si una reparación lleva presupuesto, pues me abra el archivo de Word con ese presupuesto, o si lleva un plano, me abra el archivo de Autocad...

Mi pregunta es simple, ¿Es posible? ¿Cómo lo hago?. Me ha dado por pensar...imagino que una vez que enlazo esos archivos lógicamente no puedo moverlos de la carpeta donde estén ya que access no los encontraría, pero, ¿tendré que tenerlos todos en la misma carpeta? Ya que si es así pierde su utilidad ya que están clasificados por cliente o año en varias carpetas.

Gracias de antemano

Saludos
Arriba
Pablillo I Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 27/Julio/2006
Localización: España
Estado: Sin conexión
Puntos: 298
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Pablillo I Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 16/Septiembre/2016 a las 14:05
Supongo que sabrás algo de VBA.

Copia este código en cualquier módulo:

Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Declare Function GetDesktopWindow Lib "User32" () As Long

Function ActionFile(FileName As String, strOrden As String) As Variant
' función que imprime un documento de cualquier aplicación

Dim RetVal As Long
Dim sError As String
Dim LenMsg As Long

'strOrden ---> Open abre el documento
'strOrden ---> Print manda imprimir el documento

' se manda actuar al documento
RetVal = ShellExecute(GetDesktopWindow(), strOrden, FileName, "", "C:\", 1)

End Function



Y despúes en el formulario creas un botón que al hacer click:

ActionFile(CStr(RutaDocumento), "Open")

Siendo RutaDocumento la ruta y el nombre del archivo que quieras abrir. Windows buscará con que aplicación se abre y lo ejecutará.


Sencillo.

Arriba
javirguez Ver desplegable
Nuevo
Nuevo


Unido: 16/Septiembre/2016
Localización: Pola de Lena
Estado: Sin conexión
Puntos: 7
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita javirguez Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 16/Septiembre/2016 a las 15:06
Hola, primero de todo muchas gracias por la respuesta.

En otro foro me han recomendado esto: 

Inserta un campo tipo hipervinculo al que llamaremos DocPresupuesto. En el formulario, en el evento doble clic de esta campo metemos este código:

On Error GoTo Err_DocPresupuesto
DoCmd.RunCommand acCmdInsertHyperlink
DoCmd.Save , ""

Exit Sub
Err_DocPresupuesto:
MsgBox "Asignación de ruta cancelada", vbInformation, "CANCELADO"



De esta forma tendremos guardada la ruta relativa desde tu base de datos al documento. Ahora solo tienes que hacer clic en este campo y ya abre el archivo. Yo lo he probado con word, excel, imagenes, pdf,.. pero no no autocad

Para cambiar la ruta, por si te has equivocado, insertas un botón que tenga por código en el evento clic: 

Me.DocPresupuesto = ""


¿Cual es tu opinion de este metodo??
Arriba
Pablillo I Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 27/Julio/2006
Localización: España
Estado: Sin conexión
Puntos: 298
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Pablillo I Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 16/Septiembre/2016 a las 16:13
A mi no me gustan, particularmente, los hipervínculos.

Yo tengo ese código implantado en mis aplicaciones y desde el Access 2003 me funciona en todos.


Arriba
RRoca Ver desplegable
Colaborador
Colaborador


Unido: 02/Enero/2006
Localización: España
Estado: Sin conexión
Puntos: 4817
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita RRoca Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 16/Septiembre/2016 a las 16:20
Hola:
Creo que con los hipervínculos siempre te pide una respuesta de conformidad y esto a veces es molesto, la opción que te indica Pablillo I creo es mas limpia.
Saludos.
Romain Rolland (1866-1944) escritor y ensayista frances dijo: Crear, es matar la muerte. (para mi, filosoficamente penetrante)
Arriba
javirguez Ver desplegable
Nuevo
Nuevo


Unido: 16/Septiembre/2016
Localización: Pola de Lena
Estado: Sin conexión
Puntos: 7
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita javirguez Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 16/Septiembre/2016 a las 16:37
Pues he creado un modulo, pegado el texto que me diste (como observacion he de decir que me ha puesto en rojo las dos primeras lineas), lo he guardado como modulo 1.
Ahora bien, al crear el boton e incrustarlo me pone:
   "Error de compilacion. en la expresion de consulta 'AppLoadString([bw_tblBtnActions].[Description]'."

Arriba
Pablillo I Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 27/Julio/2006
Localización: España
Estado: Sin conexión
Puntos: 298
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Pablillo I Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 16/Septiembre/2016 a las 16:57
Si el editor VBA te pone la linea en rojo, es que no la entiende. Que versión de Access usas?.

Por si acaso tema referencias mira a ver cuales tienes, yo siempre tengo como mínimo: Visual Basic for Aplications, Microsoft Access XX.0 Object Library, OLE Automation y Mircosoft Access XX.0 Access database engine object



Arriba
javirguez Ver desplegable
Nuevo
Nuevo


Unido: 16/Septiembre/2016
Localización: Pola de Lena
Estado: Sin conexión
Puntos: 7
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita javirguez Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 16/Septiembre/2016 a las 17:06
Uso el Access 2010, del tema de las referencias ya me perdiste...
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable