Hola lmpadron, quería agradecerte tu interés en responder a mi duda y por supuesto que trataré de seguir el consejo acerca de la claridad en la explicación de las dudas.
Básicamente has entendido bastante bien la cuestión, pero para que quede aún más claro voy a tratar de explicarlo de otra manera sólo para un registro de la tabla2, por ejemplo:
1.- Uso estos componentes: TTable1, TTable2, TDataSource1, TDBNavigator1, 13 TLabels, 26 TDBEdits (uno por cada campo de la tabla2 para ver los datos del registro actual) y un TQuery1 para realizar la consulta.
2.- Uso BDE para trabajar con bases de datos locales.
3.- En la tabla2, recorrer todos los campos del
registro actual y tomando cada par de
Frec2.x---Id2.x
para comparar sus datos con el par
Frec1---Id1 de todos los registros de la tabla1. Por lo tanto, tendría
que usar un bucle
for, tal que así:
Código:
for(x=1;x<=13;x++)
{
Query1->Close();
Query1->SQL->Clear();
String sConsulta = " SELECT * FROM tabla1 WHERE tabla1.Frec1 = tabla2.Frec2.x AND tabla1.Id1 = tabla2.Id2.x ORDER BY Nombre1";
Query1->SQL->Add(sConsulta);
Query1->Open();
//Si la consulta devuelve alguna coincidencia
if(!Query1->IsEmpty())
{
//Hacer que la etiqueta contenga el nombre (ordenado alfabeticamente)
Labelx->Caption = Query1->FieldByName("Nombre1")->AsString;
}
//Si la consulta no devuelve ninguna coincidencia
else
{
Labelx->Caption = "Ninguna coincidencia encontrada.";
}
}
4.- En este caso, ¿debería insertar dicho código de actuación en el evento AfterScroll del componente TTable2? que es verdaderamente el componente que enlaza con la tabla que voy recorriendo con el TDBNavigator, ¿cierto?
5.- Por otro lado, si al abrir la aplicación también se debe realizar esta operación con el primer registro de la tabla2, que sería el registro actual, ¿qué debería hacer para ello?
Un saludo compañero!!