Tablas relacionadas

Espero puedas ayudarme, estoy realizando una aplicación que controlara papelería de una empresa de trasporte, tengo las siguientes tablas:
Transportes, Pilotos, documentos, recibos y vales
La tabla transportes esta constituida de esta manera:
Cod_trans ... Char(10) indice principal
nom_trans ... Char(40)
La tabla pilotos es la siguiente:
cod_piloto ... Char(10)
nom_piloto ... Char (40)
cod_trans ... Char (10)indice regular
(Un transporte tiene varios pilotos)
Ahora bien, tengo un formulario para manipular la tabla transportes, sencillo!, sin embargo tengo otro formulario para manipular los pilotos, pero no se la codificación para el botón buscar, grabar, modificar, borrar, etc. Para que al momento de buscar un piloto me aparezca en un combobox el transporte al que pertenece, y poder modificarlo.
Al igual que en el párrafo anterior, los formularios para documentos, vales y recibos, (Un piloto puede tener varios documentos) la información del piloto y transporte debo desplegarla en un combobox y modificar los otros datos. Claro no voy a guardar el nombre del piloto y transporte en cada tabla...
Por favor me Urge terminar la aplicación
Respuesta
1
Pues no entiendo muy bien tu pregunta pero me imagino que el problema es que cada vez que modificas un Piloto por ejemplo, debes hacerlo en varias tablas así que debes posicionarte en el registro correspondiente al Piloto en cada una de esas tablas
Para lograr eso, debes usar los índices, podrías tener algo así:
USE Transportes IN 0 ORDER Cod_Trans
USE Pilotos IN 0
** Seleccionas a un Piloto
SELECT Transportes
SEEK Pilotos.Cod_Trans
** Aquí ya estarías posicionado en el registro del Transporte  del Piloto seleccionado
** Puedes modificar el registro o solo consultar la información
Lo del "ComboBox", para que necesitas un [ComboBox] si el Transporte solo va a ser uno, o eso creo. Puedes usar una relación para mostrar para mostrar solo el Transporte correspondiente.
USE Transportes IN 0 ORDER Cod_Trans
USE Pilotos in 0
SELECT Pilotos
SET RELATION TO Cod_Trans INTO Transportes
** Para configurar el Combo
ThisForm.Combo1.RowSourceType = 6
ThisForm.Combo1.RowSource = "Transportes.Nom_Trans
Para los otros formularios sería casi el mismo procedimiento.
Eso es lo que entiendo, aunque no estoy seguro que sea lo que tu necesitas. Si no lo es, trata de explicarme de otra forma lo que quieres hacer..
Muchísimas gracias por tu ayuda, la verdad es la única respuesta que se acerca a lo que deseo, bueno tratare de explicarte mejor, el problema esta en relacionar las tablas:
1. En la primer tabla grabo los transportes, aproximadamente diez.
2. En la segunda tabla grabo los pilotos, tendríamos un aproximado de cinco pilotos por cada transporte.
Bueno en el formulario para administrar los pilotos tengo lo siguiente:
Un Textbox para código y nombre de piloto
Un combobox para desplegar la lista de transportes.
Botones buscar, modificar, grabar, limpiar (formulario), cancelar
Lo que necesito es que al momento de realizar la búsqueda, de un piloto mediante su código, en el combobox, me de el resultado al transporte que pertenece.
En caso de que el piloto no exista, necesito grabarlo y relacionarlo con algún transporte.
Bueno espero haberme explicado mejor, mi correo es [email protected], y estoy muy agradecido por tu ayuda!,
Éxitos y Bendiciones
Creo que no te he preguntado el código que puedo utilizar en el botón buscar, ademas no se si me pudiera proporcionar tu correo electrónico para enviarte el proyecto y lo puedas chequear y asesorarme, Gracias
Espero no ser muy hostigante
Ya veo, creo que ahora si me imagino lo que quieres hacer, es sencillo, te explico.
USE Transportes IN 0 ORDER Cod_Trans
USE Pilotos in 0
** Para configurar el ComboBox, el cual debe obtener la información de la tabla Transportes
** Esto también lo puedes hacer en tiempo de diseño, mediante las Propiedades
ThisForm.Combo1.RowSourceType = 6
ThisForm.Combo1.RowSource = "Transportes.Nom_Trans"
** Suponiendo que tengas un TextBox (txtCodPiloto) para buscar el Piloto
** Este sería del código del botón buscar
** Si la tabla Pilotos no tiene índice según Cod_Piloto puedes usar un [LOCATE]
SELECT Pilotos
        LOCATE FOR UPPER(ALLTRIM(Cod_Piloto)) == ThisForm.txtCodPiloto.Value
        IF FOUND()
                ** Aquí empiezas a llenar lo Textos
                ThisForm.txtNomPiloto.Value = Nom_Piloto
                ...
                ** Buscas el registro del Transporte
                IF SEEK(Pilotos.Cod_Trans, "Transportes")
                        ThisForm.cmbTransporte.Value = Trasportes.Nom_Trans
                ENDIF
        ENDIF
Me parece que eso debe funcionar.
Si quieres mandarme el formulario o tu Proyecto para checarlo, esta bien. Mándalo a esta dirección: [email protected]
Suerte.
Gracias, voy a intentar la solución que me has proporcionado y al terminarla te envío el proyecto para que lo revises, Agradezco enormemente el tiempo que te has tomado en responderme y ayudarme, y espero sigas adelante apoyando a otras personas.
Éxitos y Bendiciones

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas