Insertar fotografía

Hola. Tengo un par de dudas con respecto a Access a ver si me puedes orientar un poco.
Tengo una Formulario (FormPersonal) Asociado a una tabla (TablaPersonal) que contiene los datos de diferentes Trabajadores. Uno de estos datos es una fotografía del trabajador.
1) Me gustaría que cuando introduzco los datos de los trabajadores, en el recuadro donde debe aparecer la fotografía, al pulsarlo, me salga un cuadro de dialogo en el que seleccione la ruta donde se encuentra el archivo JPG del trabajador; así cuando yo este consultando la base de datos, cada vez que actualizo a un registro nuevo me salga la foto del trabajador.
El problema es que no tengo ni idea como implementarlo. Te agradecería la ayuda y si tienes alguna sugerencia que me la hicieras saber.
2) ¿Puedo hacer una consulta en un cuadro de texto, sin tener que definirla en CONSULTAS? Quiero que en FormPersonal me aparezca la suma de las horas que ha empleado un trabajador en un día determinado; para ello tengo que acceder a otras tablas que no están abiertas.
Gracias de antemano y un saludo.

2 Respuestas

Respuesta
1
Disculpa el retraso pero he estado bastante liado.
Con respecto a tus preguntas:
1º Me imagino que ya tienes la tabla creada y has puesto el correspondiente campo del tipo 'Objeto OLE' para que contenga la foto.
Necesitas añadir en el formulario de entrada de datos un objeto 'Marco de objeto dependiente' asociado al campo correspondiente a la fotografía de la tabla. Supongo que hasta aquí has llegado también.
La parte que te interesa: selecciona el marco comentado en el párrafo anterior, y en la ventana propiedades selecciona la pestaña 'Eventos' y pulsa sobre 'Al hacer doble click'. Selecciona [Procedimiento de evento] y pulsa sobre '...'. En el código que se te abre, suponiendo que el marco se llama 'foto' debes poner lo siguiente:
Private Sub Foto_DblClick(Cancel As Integer)
' Comprueba si ya hay objeto asignado
If IsNull(Foto.Value) Then
Foto.Action = acOLEInsertObjDlg ' Abre el cuadro de insertar objeto para seleccionar la foto
Else
MsgBox "Ya está asignada la foto de ese trabajador" ' No deja modificar fotos existentes
End If
End Sub
Lo importante es la línea
Foto.Action = acOLEInsertObjDlg
Que es la que te mostrará el cuadro de dialogo de 'Insertar objeto', que es en el que podrás elegir la foto. Tu decides si quieres que puedan elegir fotos para un objeto ya creado (quitando la parte del ELSE) o no.
2º Para hacer una consulta lo mejor es utilizar el SQL, pero no sé si te estaré liando mucho.
Tendrías que irte a la ventana de propiedades del formulario y en la pestaña 'Eventos' seleccionar 'Al activar registro'. Selecciona [Procedimiento de evento] y pulsa sobre '...'. En el código que se te muestra pon lo siguiente:
Private Sub Form_Current()
Dim rst As Recordset
' Sentencia SQL
Set rst = CurrentDb.OpenRecordset("SELECT Nombres.Ape1 FROM Nombres WHERE Nombres.Clave=" + Str(Clave) + ";")
On Error Resume Next
' Mueve al último registro. Debería ser una consulta que devolviera un registro único con un solo campo.
rst.MoveLast
If rst.RecordCount = 1 Then calculado = rst.Fields(0) Else calculado = "?"
End Sub
En este ejemplo, 'calculado' es un campo independiente del formulario en el que se guarda la información obtenida por SQL. La sentencia SQL está condicionada por el campo 'Clave' que pertenece a la tabla abierta.
Si no manejas bien SQL puedes crear la consulta desde 'Consultas', y una vez que la tengas totalmente definida, elijes la vista 'Vista SQL', copias la sentencia y la pegas en el código de ejemplo, desechando posteriormente la consulta.
Si te he liado, no te funciona algo o tienes cualquier otra duda, aquí me tienes.
Respuesta
1
Creo que ya te he respondido a esta pregunta... Deberías intentar no duplicar las preguntas..
Saludos.
Jordi Pérez i Madern
Mataró (Barcelona)
Estupendo. Me será de mucha utilidad. Con respecto a la duplicidad de las preguntas, lo hice por que me corría prisa la solución y no me contestaban. Muchas gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas