Access - No puedo abrir un documento de una carpeta

 
Vista:

No puedo abrir un documento de una carpeta

Publicado por Agustín (4 intervenciones) el 21/02/2024 16:36:44
Hola
Llevo varios días mirando por foros, internet, I.A.,….. y no he sabido encontrar la solución, y por esto solicito vuestra ayuda.
Tengo una base de datos de clientes. En el formulario principal (F_Clientes) tengo datos personales, con nº de cliente, apellidos, nombre,…. En una carpeta del disco duro tengo todos los datos distribuidos en subdirectorios: facturas, fotografías, documentos, ….
Estos documentos están en la carpeta C:\Clientes\Documentos, y son únicos para cada cliente, y pueden tener dos formas de nombre (siempre empezado por “D-“) según estén guardados por nº de cliente o por nombre de cliente (esto se debe a que algunos clientes todavía no lo son, y hasta entonces no tienen número, pero tengo que guardar el documento de alguna manera).
Estos documentos son muy variados: texto, pdf, imagen, sonido, ….. por lo que las extensiones no son homogéneas: doc, docx, xls, pdf, wav, ….
Por ejemplo: D-45.pdf, D-5924.xls, D-GARCÍA LÓPEZ Paco.docx,
En el F_Clientes pongo un botón cuya misión es abrir el documento de ese cliente en concreto. El problema es que no lo he conseguido. Como máximo he logrado sacar el nombre del archivo sin la extensión, pero con esto es insuficiente para abrirlo con FollowHyperlink.
También he podido hacerlo diciendo algo así como Si nombre de archivo es xx.PDF o xx.DOC o xx.XLS (lo de xx es el nombre que sí he podido conseguir) pero la lista es interminable y no es práctico y si se incorpora otro tipo de archivo que no está en la lista, no puedo abrirlo.
¿Alguien puede echarme una mano?
Gracias anticipadas por vuestra ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

No puedo abrir un documento de una carpeta

Publicado por Anonimo (3316 intervenciones) el 21/02/2024 20:33:08
Si la documentación de cada cliente esta en la misma carpeta (una carpeta por cliente) personalmente cargaría en un combo (o cuadro de lista) un listado con el contenido de la carpeta.

Seleccionaría el que me interesase y bien con el botón (o un evento del combo) mediante Hiperlink u otra alternativa abriría el fichero.

En un formulario he creado:
.- Un combo con una columna y de tipo 'lista de valores' (Cbo_Listado)
.- Un cuadro de texto para obtener la carpeta (el cliente)
**** (en la aplicación real se tomará el nombre de un objeto del formulario, lo adecuado: el ID)
.- Un botón para cargar el contenido de la carpeta (Comando6).
**** (en la aplicación real se utilizaría el evento Open del formulario)

En el combo solo estarán los nombres (con su tipo de archivo) y para utilizar la función Hiperlink solo se ha de reconstruir la ruta completa añadiendo el nombre de archivo (el elemento seleccionado en el combo) a continuación de la ruta inicial (la que se utilizo en el primer 'Dir').

El código utilizado en el botón:

1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Comando6_Click()
Dim XDato As String   ' variable para utilizar en el bucle
Me.Cbo_Listado.RowSource = ""    ' vaciado del combo (que es un objeto independiente)
If Len(Trim(Me.Cliente)) = 0 Then Exit Sub   ' Si no hay cliente se aborta el llenado del combo
XDato = Dir("c:\" & Me.Cliente & "\")   ' Creamos la ruta inicial
Do     ' comienza el bucle
' si no hay mas archivos a añadir se sale, pero se envia el foco al combo y se despliega, alternativa: se puede predeterminar un dato del combo
If Len(XDato) = 0 Then Me.Cbo_Listado.SetFocus: Me.Cbo_Listado.Dropdown: Exit Sub
Me.Cbo_Listado.AddItem XDato   ' añadimos el nombre de archivo al combo
XDato = Dir ' vamos a por otro nombre de archivo
Loop   ' fin del bucle
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

No puedo abrir un documento de una carpeta

Publicado por Agustín (4 intervenciones) el 22/02/2024 08:56:35
Gracias Anónimo.
No me he expresado bien. Hay una única carpeta "Documentos", en la que están todos los documentos de todos los clientes, pero sólo uno por cliente. En un origen era un pdf en donde se iban añadiendo documentos de word como nuevas páginas de ese pdf, para tenerlo todo junto. Ya sé que esto no es práctico, que es mejor tener cada documento por separado, con una parte del nombre de archivo que marque la diferencia entre los archivos de un mismo cliente (por ejemplo, la fecha del archivo). Luego importo todo esto a una tabla (listado de archivos con su ruta) y los relaciono con el nº de cliente. Lo abro en un formulario y así puedo acceder a cada archivo.
Lo que pretendo es encontrar una manera de poder abrir cualquier archivo, independientemente de la extensión, con la orden FollowHyperlink.
Quizás tendría que haber planteado el problema de otra manera: Cómo creo una tabla con el listado de todos los archivos con su nombre y extensión. Luego ya me las ingeniaré para extraer el nº Cliente o los Apellidos + Nombre del nombre de los archivos, y así relacionarlos con cada cliente en particular.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

No puedo abrir un documento de una carpeta

Publicado por Anonimo (3316 intervenciones) el 22/02/2024 10:01:20
Si lo que se guarda en una tabla que relaciona los registros con información externa es solo el nombre del archivo.
Si los archivos están todos en una única carpeta común y lo que se necesita es conocer su extension para poder utilizarlo...
La función DIR lo resuelve :

La ruta es única para todos (una constante), la función DIR admite comodines ... sencillo

Ruta = "C:\Almacen_Datos\"
Nombre_archivo = ... al parecer el nombre del documento se toma de una tabla .... nos vale, solo se necesita su tipo:
NombreyTipo = Dir (RUTA & "Nombre_Archivo" & ".*")

De lo que resulta que la ruta completa es:
Ruta & NombreyTIpo

Un ejemplo:
Si el nombre (dato que se conoce) fuera 'Iconsext'
La función DIR devolverá: 'Iconsext.exe'

La ruta completa (Ruta & NombreyTIpo) seria:
"C:\Almacen_Datos\" & "Iconsext.exe" ====>>>> "C:\Almacen_Datos\Iconsext.exe"


Cada programador tiene su particular metodología (dicho popular: 'cada maestrillo tiene su librillo'), no deberías conformarte con solo las cubiertas y escribir 'el libro' con capítulos (tendrá mas futuro la aplicación).

Nota: Se puede hacer una función recursiva que remplace el dato actual por el adecuado a su uso (o añadir un campo mas con el 'dato complementario: el tipo) solo se necesitaría hacerlo una única vez y después : (Ruta & nombre) o bien (Ruta & nombre & tipo)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

No puedo abrir un documento de una carpeta

Publicado por Agustín (4 intervenciones) el 22/02/2024 10:41:07
Muchas gracias.
Tiene buenas pintas.
Lo probaré
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar