ligar 2 datagrid

sereno
06 de Octubre del 2004
hola, mi pregunta es:
tengo 2 tablas diferentes, aunque el mismo folio en las 2,
como hago para que al moverme en un grid, en la otra se vaya visualizando lo correspondiente,

krizall
06 de Octubre del 2004
hola sereno, la verdad no se como estas trabajando, si con sql y ado, o el data, bueno
mira, yo trabajo con ado(codigo) y sql
pordira hacer un procedimiento que te llene el segundo grid basado en una consulta sql, la cual pide como parametro un valor(folio) y en el evento click del primer grid disparas el evento por ejemplo

private sub grid1()
llenargrid2(valor del item donde se hizo clic)
end sub

private sub llenargrid2(folio as string)
aqui el procedimiento con que llenas tu grid2
la consulta quedaria mas o menos asi:
ssql="select campo1,campo2 from tabla where folio='" & folio & "'"
aqui ejecutas la sentencia y mandas los datos al grid
end sub

este es solo una forma de como podria ser, si pones el codigo de como trabajas, creo que seria mas facil darte una respuesta mas concreta...

saludos, y si puedo ayudarte en algo, no dudes en escribirme

Bartolom
06 de Octubre del 2004
Asumo que tu consulta se refiere a dos tablas relacionadas, por poner un ejemplo, una tabla con los nombres de padres y otra con el nombre de los hijos correspondientes a cada padre (en tu caso en vez del padre, serían los folios). Supongamos que cada una de las tablas está conectada a un control ADO (esto es a gusto de l programador, ya que puede ser por conexión, entorno de datos, etc, pero para el caso, da lo mismo).

Para eso, ambas tablas deben tener un campo en común, por ejemplo Nombre_Padre, que sería único para
la tabla padres y con duplicados para la tabla hijos, o sea una relación uno a muchos.
Al clickear sobre el datagrid, se produce un evento click, lo que puedes hacer es modificar el
RecordSource del ADO enlazado al datagrid2. Sería una instrucción así:

Supongamos que el ADO enlazado a la tabla hijos se llame Adodc2 y el datagrid enlazado a la tabla padres
se llame datagrid1, entonces:

Private Sub DataGrid1_Click()
Dim Cadena As String
Cadena = DataGrid1.Columns(0).Text
Adodc2.RecordSource = "SELECT * FROM hijos WHERE Nombre_Padre Like '" & Cadena & "'"
Adodc2.Refresh
End Sub

Así le vas cambiando el recordsource al Adodc2 y como éste estará enlazado a otro grid, ese grid irá
mostrando lo que tu quieres. Acá estoy asumiendo que el campo en común se llama Nombre_Padre y es la
primera columna. Si es otra columna, tienes que cambiar el subíndice (0) por el que corresponda a
la columna.

Saludos!
Bartolom
Chile