Formulario traer hasta 5 ControlBox de una tabla independiente "Tecnicos"

No creo que me esté explicando bien mi problema pero lo voy a intentar.

Tabla Independiente Técnicos

Tengo un formulario y lo que hago es traer de una Tabla independiente “Técnicos”, con un Cuadro Combinado cojo un Técnico y automáticamente me parece la Firma, Nº Certificado y la Fecha de la Tabla Técnicos.

Primera duda es que no logro que aparezca la firma “Firma.jpg” que es una foto.

Ahora tengo que el 1er Técnico al marcarlo en el Cuadro Combinado vienen los datos, aunque la foto no logro que salga, el resto viene bien, todo esto con ayuda siempre y muy agradecido de un experto, pero ahora se me presenta la siguiente duda, he intentado hacer lo mismo por cada Técnico repitiéndolo, pero no lo consigo que me traiga los datos, del segundo Técnico al formulario. Dejo el código VB que me dejo el Experto para que me podáis asesorar.

Formulario

Tabla independiente Técnicos

CÓDIGO DE VB. No puede deciros soy Novato no sé lo que significa ni lo que hace.

Private Sub Form_Current()

If Not Me.NewRecord Then

        Call CboTecnicos1_AfterUpdate

End If

End Sub

Private Sub CboTecnicos1_AfterUpdate()

If Not IsNull(Me.CboTecnicos1) Or Me.CboTecnicos1 <> "" Then

        Me.Firma1 = Me.CboTecnicos1.Column(2)

        Me.N_Certificado1 = Me.CboTecnicos1.Column(3)

        Me.FechaCert1 = Me.CboTecnicos1.Column(4)

Else

        Me.Firma1 = Null

        Me.N_Certificado1 = Null

        Me.FechaCert1 = Null

End If

End Sub

Esta parte he intentado hacer lo mismo para el resto, pero no me funciona.

Private Sub CboTecnicos2_AfterUpdate()

If Not IsNull(Me.CboTecnicos2) Or Me.CboTecnicos2 <> "" Then

        Me.Firma2 = Me.CboTecnicos2.Column(2)

        Me.N_Certificado2 = Me.CboTecnicos2.Column(3)

        Me.FechaCert2 = Me.CboTecnicos2.Column(4)

Else

        Me.Firma2 = Null

        Me.N_Certificado2 = Null

        Me.FechaCert2 = Null

End If

End Sub

Respuesta
1

Primero no entiendo por qué usas combobox´s si bien puedes usar textbox´s dependientes del campo original, porque me parece que ingresas cada técnico a la vez en la tabla técnico. Hay algo que no describes: ¿De cómo ingresas los técnicos y para qué eliges uno a la vez?. También no explicas que pretendes hacer con el formulario…. Si te emplicas mejer te podría ayudar….

Hola Richard, como ves soy novato, empecé haciendo una Base de Datos, para llevar un poco el control de unos partes de trabajo, del control de unos clientes, estos los relacioné con sus maquinas de A/A, y estas a su vez con unas intervenciones en unos "Partes", hasta hay bien porque no quería llevar más control, pero ahora me dije, pues voy a hacer un control de el técnico que hace la intervención de la unidad, entonces pensé, pues de una tabla independiente "Tecnico" quiero escoger al Técnico y se rellenen automáticamente sus datos en el Formulario "Parte", el resto de Formulario lo relleno manualmente, pero quería automatizar este detalle, de Técnico y solo por no repetir todos los datos en la Tabla de "Parte" con Técnico 1 y sus datos, Técnico 2 y sus datos, etc. Esto hice una consulta a un experto, pero pensé que si me decía como se hacia en uno, lo haría yo hasta cinco veces, pero me equivoque al no saber, y he vuelto a pedir ayuda. He usado Cuadro Combinado que creo que es un Combobox, para que buscase en la tabla "Tecnico", el Técnico que había hecho la reparación, la tabla es independiente y no la tengo relacionada con ninguna tabla.

En la tabla "Parte" solo recojo en valor "Id_Tecnico" que es un autonumérico, según he escogido al Técnico y después solo quiero imprimirlo cuando me interese para tener que rellenar menos papeles a mano y así lo tengo automatizado.

Gracias y un Saludo

Así como me lo pintas, sólo puedo decirte que necesitas relacionar la nueva tabla Técnicos con la tabla “Partes”. No tienes que diseñar un combo por cada Técnico, para eso es la automatización, donde escoges con UN, oye bien, SOLO UN combobox, los datos de detalle de Partes. Ten paciencia, tranquilo, vamos paso a paso:

Debes tener una tabla “Detalles de Partes”, relacionada con la tabla Partes, ésta relacionada con la tabla Máquinas, y esta última con la Tabla Clientes; porque son varias partes que tiene una máquina. Y esta tabla debe estar relacionada con la Tabla Técnicos por medio de un campo común, o sea, Id_Tecnico, o sea, la tabla “Detalles de Partes”.

Debes eliminar la fecha y Certificado en la tabla técnico, porque esa fecha y Certificado, tienen que ver con la operación de la parte que hace el técnico y debe estar en la tabla “Detalles de Partes”. Esos dos datos deben estar en la tabla Tecnicos.

Ahora bien, un Subformulario “Detalles de Partes” estaría enlazado con una consulta o Tabla “Detalles de Partes”, significa que cada Máquina tiene más de una Parte. En tu caso, me imagino, cada Parte es tratada por más de un Técnico.

Ahora el campo de la tabla “Detalles de Partes”, son:

Id_Parte: Numérico

Id_Tecnico: Numérico

Fecha: Tipo Fecha

Y algún otro campo para esa operación

Ejemplo:

“Detalles de Partes”

Id_Parte              Id_Tecnico         Fecha   

1                             1                             01/01/2016        

2                             1                             08/01/2016        

1                             2                             12/01/2016        

2                             2                             12/01/2016        

Ahora bien, para que te salga el nombre debes diseñar el Id_Tecnico de la tabla “Detalles de Partes”, a que lo busque en la tabla Tecnicos que sí tiene el nombre y el resto de los datos:

Ahora para si quieres agregar más datos del técnico en el formulario Detalles de Partes, debe existir un procedimiento de evento en la propiedad DespuésDeActualizar (AfterUpdate) del Id_Tecnico cuando lo elijas en el combobox, para que te asigne automáticamente el resto de los datos del técnico (firma, Certificado, etc), de los controles adicionales.

Private Sub Id_Tecnico_AfterUpdate()
On Error GoTo Err_Id_Tecnico_AfterUpdate
Dim txtFiltro As String
    ' Evaluar el filtro antes de pasarlo a la funcion DLookup.
    txtFiltro = "Id_Tecnico = " & Me!Id_Tecnico
    ' Buscar ela Firmad del Id_Tecnico y asignarlo al control Firma del formulario.
    Me!Firma = DLookup("Firma", "Tecnico", txtFiltro)
    ' Buscar el precio por unidad del Id_Tecnico y asignarlo al control Certificado del formulario .
    Me!Certificado = DLookup("Firma", "Certificado", txtFiltro)
Salir_Id_Tecnico_AfterUpdate:
    Exit Sub
Err_Id_Tecnico_AfterUpdate:
    MsgBox Err.Description
    Resume Salir_Id_Tecnico_AfterUpdate
End Sub

Como no me das mas información es todo lo que puedo hacer por ti. La fecha se repite en la tabla Parte y en la de detalles porque no sé que otros campos colocar, esto es redundancia de datos. Ayuda mucho mandar la estructura de las tablas. Éxito.... 

No olvides agradecer...

¡Gracias! Richard

Perdona, por no haberte agradecido antes, he estado viendo un poco y era complicado para mi, y la verdad me han terminado un compañero la Bd. Lo quería hacer así porque con la tabla de Técnicos tendría menos datos en la Bd, que estar repitiendo constantemente.

Gracias y un Saludo

1 respuesta más de otro experto

Respuesta
1

Yahovir: Creo que ese código te lo pasé yo y ahora creo que tenía tu BD.

Cuando se da por zanjada una pregunta las borro porque si no tendría demasiadas.

Si me la haces llegar miro de solucionar el problema y te la reenvío.

Mis saludos>> Jacinto

Hola Jacinto y gracias por contestar porque ya es complicado explicarme y tú me entendiste mi idea a la perfección, lo que no se si te acordaras, pues he intentado terminar la BD, lo del archivo que me enviaste intente duplicarlo y hacerlo hasta cinco veces lo de los cuadraditos que me comentaste, pero no lo he conseguido.

El CboTecnicos1, la firma no me aparece el dibujo de la firma que tengo en jpg, me aparece el nombre del archivo y quisiera que apareciese la firma que tengo de cada técnico. Y luego quiero poder escoger hasta los cinco Técnicos distintos e ir almacenando en la tabla "Parte" el Id_Tecnico en cada lugar de la tabla los Tecnico1 hasta el Tecnico5, no creo que usemos mas de tres técnicos, pero hay están. 

El resto no se si te hace falta algún dato, pero creo que no.

El link del archivo es:

http://www.mediafire.com/download/ay37d8pg5l8wm5c/Gases.rar 

Gracias y espero terminarla BD y dejarte descansar, aunque estoy pensando en otra cosita, pero espero que con lo que me enseñes me sirva para la otra. Me gustaría entender Visual Basic y poner comprender lo que realmente hace.

Gracias

Yahovir: Recibido.

A la que tenga un hueco lo miro y te la pongo en un enlace nuevo aquí. Saludos >> Jacinto

Yahovir: Supongo que es ésto lo que quieres>>

Hasta ahora está en ésta situación.

Ignoro si quieres permitir que haya repeticiones de Técnico, o evitar que seleccionado uno pueda elegirse otra vez.

Espero tu contestación. Saludos >> Jacinto

Hola buenos días Jacinto.

No necesariamente hace falta repetir técnico, los datos siempre son los mismos, me vale con seleccionarle y ya se el técnico que lo conoce y ha estado. Saber los técnicos que hemos estado, ya que yo soy Luis realmente, recuperado o manipulado el freón de unidades de aire acondicionado. Esta muy serio por el tema invernadero.

Gracias

Luis: Quería dar por terminado tu Fichero a lo largo de la mañana, pero tengo una duda que me gustaría aclarar antes.

En la Tabla hay dos Campos que no acabo de entender.

N_Certificado y FechaCert. Supongo que esos dos Campos que de acuerdo a tu diseño son Constantes, deben ser variables en cada "Parte"

Ya tengo claro que en un Parte pueden intervenisr de 1 a 5 Técnicos.

La firma del Técnico, lógicamente será invariable.

Y entonces el N_Certificado y FechaCert pueden ser variables.

Primer Ejemplo: Luis IdParte >> 15000

Pasa en Fecha 13/01/2016

Emite Certificado 456

Vuelve a pasar el 18/01/2016

Emite el Certificado 1548

Si ésto es así necesitaremos una Tabla Complementaria que puede ser "ParteYTecnicos"

Con una estructura parecida a ésta:

IdApunte >> Auto

IdParte >> Numero

IdTecnico >> Número

Certificado >> ¿Texto, o Numero?

FechaCert >> Fecha/Hora

Y la Tabla Técnico quedaría solo con IdTecnico, Técnico, Firma

Y aquí dicho sea de paso, yo no utilizaría un Campo de datos Adjuntos, sino la Ruta de la Imagen, porque se aligera la BD.

Si te comento todo ésto es para terminar éste proceso y si has de hacer nuevas preguntas en el Foro, que sea de otro tema.

Espero tu contestación antes de seguir. Saludos >> Jacinto

Luis: He podido dedicar un tiempo a tu BD, y aunque no habrás visto mis sugerencias anteriores, te facilito el enlace, de la BD, porque estoy convencido de que se ajusta a tus necisidades, aunque con un riesgo de no acertar.

http://www.mediafire.com/download/fzwozsxxfx5co62/AppGases.rar 

Al descomprimir éste fichero verás que hay una Carpeta y otra dependiendo de ella con las Firmas. Si la cambias no olvides esa Carpeta que ahora lleva 5 ficheros .jpg que ya sustituirás.

Esos Ficheros son los que has de poner literalmente en la Tabla Tecnicos.

Ya me contarás >> Jacinto

¡Gracias! 

Hola Jacinto, llego de trabajar ahora y no puedo verlo antes, si es constante ya que es el número fijo que tenemos inscrito en Industria.

Le voy a revisar, te digo algo.

Saludos

Hola Jacinto, está perfecta mucho mejor que lo yo quería, ahora tengo que pasarla a la original, espero no tener problemas.

Gracias y espero dejarte tranquilo durante una temporada.

Saludos

Perfecto Luis: Si tienes dificultades me comentas. Saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas