De ejemplo descargado de http://neckkito.xyz/ Simulador de datos Adjuntos

He probado a adjuntar por asi decirlo documentos de Word, excel y entonces me crea correctamente la carpeta donde se guarda el documento

Pero si adjunto un jpg o un pdf.. Este ultimo es el que necesito no me crea ninguna carpeta... He estado viendo los módulos y los procedimientos de evento pero no se donde modificar... Soy bastante nueva trabajando en bases... Les agradecería me ayuden... Si es posible. Es para un proyecto en el que estoy trabajando y este ejemplo descargado de http://neckkito.xyz/ (se lo agradezco) me solucionaría gran tramo del camino.

1 Respuesta

Respuesta
1

¡Gracias! Lo he probado desde ayer.. una y otra vez.  y no me crea la carpeta cuando es un jpg ni pdf.  Quise grabar un vídeo para que viera como a mi me funciona... pero vi que no había como subirlo aquí..  Me hubiera servido de mucho este ejemplo.. y mucho es decir estaba completo para adaptarlo a mi base de datos..  pero como dicen lo bueno cuesta.. tratare de hacerlo desde cero dentro de mis posibilidades leyendo aquí y allá.   Gracias por responder. 

Estuve probando el ejemplo es tan bueno que no me he dado por vencida... si entro al formulario e ingreso los datos sin ponerle el dato adjunto y lo grabo... no pasa nada (no crea carpeta-verificado)... pero si regreso a editarlo.. y en ese momento le adjunto el pdf.. allí es donde crea la carpeta...  Así mismo si ingreso los datos directamente en la tabla.. y ingreso al formulario solo a editarlo y adjunto el pdf.. en ese momento si crea la carpeta... Tenia mis dudas si era mi computadora... ya probé en otra y exactamente lo mismo sucede...  

Otra duda porque cuando quiero ver archivos pdf.. dentro del simulador en el botón "ver documento" me sale este mensaje...

Pues como ya te dije en el otro foro, a mi me guarda perfectamente los pdfs, imágenes y cualquier tipo de archivo (incluso puedo guardar como adjunto la propia base de datos...)

Te comento sobre tus respuestas un par de cosas:

1º/ La carpeta Documentos y la carpeta oculta Temp se crean (si no existen ya) al cargar el formulario FMenu.

2º/ La carpeta "Datos" se crea (si no existe, que no debiera) la primera vez que pulsas en el botón del diskette (el botón de guardar) en el formulario FDatos.

3º/ Las carpetas con los datos del registro, se crean al pulsar el mismo botón de guardar, pero sólo si existen "adjuntos" cargados en el combo.

4º/ Si trabajas directamente sobre la tabla, lógicamente no pasa nada, porque las tablas no pueden ejecutar código.

5º/ El aviso de seguridad es por la configuración de seguridad de tu Access o Windowsal usar FollowHyperlink. Si por medio de las opciones de access no lo consigues quitar, puedes usar shellExecute para abrir el archivo (en la web de Neckkito lo tienes explicado)

¡Gracias! por tus respuestas.. Analizare el 5to items.. es lo que resta... logre adaptarlo pues los datos a los que quiero "adjuntar" documentos ya están creados, de hecho casualmente tienen los mismos campos y mas.. por lo que el usuario por ende tendrá solamente que editar... y como al editar en mi caso es donde adhiere documentos pdf  y se crea la carpeta (en mi caso)... entonces me funciona perfectamente... Gracias por tu paciencia en explicarme.. y por tu amabilidad en invertir tu tiempo en mis consultas.  Hasta ahora todo me funciona perfecto.. Si tengo alguna duda.. no dudare en preguntaros son todos unos expertos... Gracias y un hasta luego.

Es posible agregarle un buscador al Simulador de datos adjuntos... Tengo en varios formularios un botón " Ir ... " con una macro. Pero la lógica me dice que no me funciona aquí.. tengo más de 5000 registros para adjuntarle documentos.. necesito un buscador..

Me pueden decir antes de que se me olvide.. he visto en varias preguntas.. que piden finalizar la pregunta.. Eso como se hace.. 

Para finalizar una pregunta, simplemente debes valorarla y tu último comentario debe ser agradecimiento, no pedir más información

He detectado un error en el código que hacía que para un registro nuevo no se guardaran los adjuntos (ni pdf ni ningún otro), por si te sirve de algo.

En el Procedimiento GuardaDatos de FDatos, hay que añadirle la linea que te pongo en negrita:

Private Sub GuardaDatos()
On Error GoTo sol_err
Dim miCarpeta As String
If bolNuevo = False Then
rsDatos.Edit
rsDatos("Nombre") = Nz(Me.Nombre)
rsDatos("Telefono") = Nz(Me.Telefono)
rsDatos("Direccion") = Nz(Me.Direccion)
rsDatos("Documentos") = Nz(Me.Documentos)
rsDatos.Update
Else
rsDatos.AddNew
rsDatos("Nombre") = Nz(Me.Nombre)
rsDatos("Telefono") = Nz(Me.Telefono)
rsDatos("Direccion") = Nz(Me.Direccion)
rsDatos("Documentos") = Nz(Me.Documentos)
rsDatos.Update
rsDatos.MoveLast
End If
'Procesamos los "adjuntos"
miCarpeta = rsDatos("ID") & ". " & rsDatos("Nombre")
'Guardamos los adjuntos si los hay
SubProcesaDocs Me. Name, miCarpeta
'Vaciamos la carpeta temporal
VaciaTemp
CargaDatos
Salida:
Exit Sub
sol_err:
Select Case Err.Number
Case 75 'Error si ya existe la carpeta
Resume Next
Case 91 'Este error se produce porque la colección está vacía
Resume Salida
Case Else
MsgBox "Se ha producido el error " & Err.Number & " en el proceso GuardaDatosRecordset: " & Err.Description, vbInformation + vbOKOnly, "ERROR"
End Select
End Sub

¡Gracias! Funciono perfecto.. Te lo agradezco.  Respecto al tema del buscador para este simulador de Datos adjuntos.  encontré uno que me viene muy bien.. veré si es posible adaptarlo, no tengo ningún conocimiento en rutinas, ni visual, pero lo intento.. si no buscare ayuda... De ustedes claro.. sois unos genios.

Una pregunta más.. donde cambio en la rutina para que en lugar de crear la carpeta con el nombre la cree con la dirección.. Si se que dirá para que pero asigne los campos sin modificar mucho la rutina y el campo que necesito lo deje en el cuadro independiente dirección. En teoría solo eso me hace falta. Lo he cambiado en Me. Nombre.SetFocus a Me.Dirección.SetFocus que es para que aparezca en ese campo cuando lo abro.. pero para cambiar el nombre de la carpeta no lo encuentro.

En el código que te pegué en la anterior respuesta, esta linea:

miCarpeta = rsDatos("ID") & ". " & rsDatos("Nombre")

Es la que da el nombre a la carpeta, cogiendo el valor del campo ID (rsDatos("ID") ), añadiendo un punto y un espacio y liego cogiendo el valor del campo nombre (rsDatos("Nombre")).

Sabiendo eso, puedes ponerle a la carpeta el nombre que quieras, usando los campos que consideres adecuados.

Por cierto, puedes cambiar la valoración de la respuesta, ;-D

ya la había cambiado allí pero me da este error

  

 me da esto al ejecutar 

Tendría que verlo, porque te lo dije de memoria e igual hay que cambiar algo más, y ahora no estoy en .

Ya te diré algo cuando pueda.

Bueno la dirección si puedes ayudarme seria un bono..   Ahora necesito plantear el siguiente problema el cual solo me di cuenta al estar probando y probando.

Este es el nuevo simulador de datos Adjuntos que modifique para mi base.. quite algunos botones aunque no las rutinas.. solos los oculte.. los botones de de ir a siguiente.. ultimo.. etc. están abajo. puse un contador de registros.. etc.  todo funciona perfectamente.. Por fin. espero os guste.. pues es gracias a quien lo creo.. lo colgo en la red.. para todos nosotros.

Mi dilema ahora....  cree el botón buscar.. "Es indispensable"  al hacer clic en buscar, abre

el formulario FormModificar donde hay un cuadro combinado que tiene como origen la tabla principal expedientes.. cuando se elige un expediente y luego se presiona el botón "Ir a..."

este se cierra y va al simulador de datos adjuntos.. hasta allí todo bien.  

He aquí el problema:   En documentos ahora están  los dos archivos que adjunte, si fueran 10 aparecerían los 10, No puede ser posible.. era todo tan perfecto.

use esto.. "aclaro solo adapte" 

Option Compare Database

Option Explicit

Private Sub btnEliminar_Click()
If Not IsNull(Me.Lista) Then
CurrentDb.Execute "DELETE * FROM Expedientes WHERE Id = " & Me.Lista & "", dbFailOnError
Me.Lista.Requery
MsgBox "Integrante eliminado correctamente", vbInformation, "Aviso"
Call Limpiar
Else
MsgBox "Seleccione un Integrante", vbExclamation, "Aviso"
End If
End Sub

Private Sub Limpiar()
Forms!FDatos!ID = Null
Forms!FDatos!Nombre = Null
Forms!FDatos!Direccion = Null
Forms!FDatos!Documentos = Null       ***** intuyo que por aquí esta el problema******
End Sub

Private Sub btnOk_Click()
If Not IsNull(Me.Lista) Then
Call recupera
Else
MsgBox "Selecciona un Expediente", vbInformation, "Aviso"
End If
End Sub

Private Sub recupera()
Dim miRs As DAO.Recordset
Dim consulta As String
On Error GoTo ManipulaError
consulta = "SELECT * FROM Expedientes WHERE Id = " & Me.Lista & ""
Set miRs = CurrentDb.OpenRecordset(consulta, dbOpenForwardOnly)
With miRs
Forms![FDatos]![ID] = !ID
Forms![FDatos]![Nombre] = !Nombre
Forms![FDatos]![Direccion] = !NoAutopsia
Forms![FDatos]![cboDocum] = !Documentos  ***** intuyo que por aquí esta el problema******
End With
miRs.Close: Set miRs = Nothing
DoCmd.Close acForm, "FormModificar"
Salir:
Exit Sub
ManipulaError:
If Not miRs Is Nothing Then miRs.Close: Set miRs = Nothing
Resume Salir
End Sub

Gracias de antemano.

Te respondo por partes:

1º/ Para que el nombre de la careta se cree con oros campos, además del cambio en el código que ya te señalé, tienes que cambiar en el resto de códigos todas aquellas partes que pongan:

rsDatos("ID") & ". " & rsDatos("Nombre")

o

Me.Id & ". " & Me. Nombre

Por ejemplo, para que use la dirección, tendrías que cambiarlas (hay unas cuantas que cambiar) por éstas:

rsDatos("ID") & ". " & rsDatos("Direccion")
Me.ID & ". " & Me. Direccion

2º/ En tu formulario para cargar los documentos, espero que los botones para navegar por los registros sean unos botones personalizados (y que tengan los mismos códigos que los del ejemplo original) y no los que traen los formularios de Access por defecto como "botones de navegación", porque si no es así, mal asunto...

Ten en cuenta que el ejemplo está basado en un sistema para que el formulario sea "independiente" de la tabla (es decir, que no tome los datos directamente de ella, sino a través del código) para tener un mayor control de los datos y de todos los procesos. Si te "saltas" ese supuesto básico, y además usas los botones de navegación nativos, te saltas todo el proceso para gestionar el combinado de los adjuntos.

3º/ El código que has creado para traer los datos del buscador, si bien está construido con lógica, no te funciona porque no has terminado de entender cómo funciona el ejemplo original: como te decía se basa en un ejemplo anterior (que deberías leer si no lo has hecho aún) para trabajar con datos desconectados, y por tanto, todo el proceso de manipulación de los datos (incluida la búsqueda de registros) lo debes hacer desde el propio formulario FDatos, no puedes pasarle datos a los cuadros de texto directamente desde otro formulario externo (en tu caso el buscador).

Si no te quieres complicar mucho la vida, en el ejemplo "Datos en formularios independientes 4" tienes cómo ponerle un buscador en el propio formulario, y como los dos ejemplos se basan en el mismo ejemplo inicial (Datos en formularios independientes 1), te será mucho más fácil de implementar el buscador.

Si saco algo de tiempo, y no me enreda mucho, miro a ver si se podría hacer desde otro formulario. Pero no prometo nada

Gracias por contestar se que es parte de tu tiempo por eso es más grande mi agradecimiento. 

2. Los botones de navegar son los botones originales del formulario solo los hice más pequeños simulando los que ya traen por defecto todos los formularios.  No toque nada. Si no ocupaba alguno como "eliminar" solo le dije visible "no".  Bajaré hoy el ejemplo que me dices. Estoy bastante enredada. Y no es que quiera la búsqueda en otro formulario. Solo es que la necesito y me pareció que así me funcionaria. Pero adelante a intentarlo nuevamente. 

Buen día.. he descargado el ejemplo de DatosEnFormsIndependientes4  en teoría es todo lo que necesito.. ahora veré como adaptarla al formulario simulador de datos adjuntos que tengo..  No cierro la pregunta aun.. deme un poco de tiempo para ver como funciona.. y mil disculpas si abuso de su tiempo.   

Si lees con calma el ejemplo, te indica las modificaciones que has de hacer a los distintos códigos

Estoy leyendo y analizando... cree un documento en word donde desglose y separe el código y veo que hace cada parte... estoy queriendo comprenderlo... es la primera vez.. pero al verlo así por separado es más fácil.

Si lo quieres entender mejor, empieza por " formularios con datos independientes 1", que es la base y en el que explico lo necesario para trabajar con formularios desconectados. Los ejemplos " formularios con datos independientes 3 y 4" y el simulador de adjuntos amplían ejemplo 1 añadiendo nuevas funcionalidades.

Leí línea por línea.. puse rótulos que hacia cada cosa.. para hacer más fácil luego las modificaciones. Una por una vi que era diferente en cada una. Que hacia cada línea y rutina. Modifique cada cosa que era necesaria.. ejemplo:

Si el botón del registro anterior en el mio ejemplo era así.. lo cambiaba por lo de amarillo.

Así uno por uno modifique... adicione los botones de búsqueda y sus procedimientos de evento. RESULTADO perdón por las mayúsculas se que es gritar... no paso de allí.. muestra el listado para la búsqueda en el cuadro lista de campo, pero no me deja elegir ninguno ni lo carga en el cuadro txtbuscar.. por ende no funciona mi búsqueda.

Por favor.

Buenas noches.. Por fin creo que voy saliendo del hoyo...  ya logre que funcionara.. a medias. pero ya voy cerca lo presiento...

Busca perfectamente.. funcionan todos los botones de Cargar el archivo.. Verlo o Abrirlo.. Exportarlo. Borrarlo...     solo .. aqui viene el problema.. No GUARDA... al darle guardar me abre esto

Ultima actualización.. quite el error anterior.. hace todo el proceso.. guarda en la tabla la ruta.. pero no crea la carpeta.

Perdona se que esto no es whassap.. ya tengo que retirarme por hoy... y mejor te escribo hasta donde llegue.. se que ya estoy cerca de mi meta..  como comente anteriormente ya hace todo el proceso.. al guardar.. guarda en la tabla el adjunto... y crea la carpeta solo que en C:\Users\Carlos\Desktop\DatosEnFormsIndependientes 4\Documentos\Temp\9. Ana\archivo adjunto...   "carpeta oculta"  

Al no saber a ciencia cierta qué cambios has hecho, me es imposible decirte de dónde te viene el problema.

Lo que es seguro es que si antes de ponerle el buscador te creaba la carpeta en su sitio y ahora no, algo has tocado que no debías...

Si has empezado del ejemplo del simulador y le has añadido el ejemplo del buscador, debes asegurarte de que al hacer los cambios en los códigos, no borres nada de lo que tenga que ver con los adjuntos.

Si has empezado al revés, desde el ejemplo del buscador, debes de asegurarte de añadir todas las lineas de código que procesan los adjuntos.

Te dejo aquí, para que veas que funciona perfectamente, la bd del ejemplo "simulador..." con el filtro añadido de "formularios independientes 4": http://www.filebig.net/files/8qyPLUaXdS

Mira qué es lo que tienes diferente en tu BD para ver qué es lo que falla

¡Gracias! Que puedo decir.. pase 4 días peleando. Y el suyo funciona perfecto. Pero seguiré viendo en que me equivoque. Comparare ambos tiene que haber algo diferente. Gracias por su ayuda y por su paciencia. No ahondare más en el tema.. me centrare en lo que tengo.. y para adelante.

Estaremos en contacto. Gracias 

De nada. Puedes encontrarme aquí o en el otro foro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas