Muchas gracias
Ignacio Ruben
With Recset
If Not .EOF Then
.MoveFirst
cmbIdBanco.Clear
cmbNombreBanco.Clear
Do While Not .EOF
cmbIdBanco.AddItem .Fields("IdBanco").Value
cmbNombreBanco.AddItem .Fields("NombreBanco").Value
.MoveNext
Loop
End If
End With
2.- Como CmbNombreBanco es visible, agrega el evento click de este,
sincronizando los listindex de ambos, y al mismo tiempo cargando los
datos de las cuentas:
Private Sub cmbNombreBanco_Click()
Dim Recset As New ADODB.Recordset
Dim strSQL As String
'Sincroniza
cmbIdBanco.ListIndex = cmbNombreBanco.ListIndex
'Consulta
strSQL = "SELECT * From cuentas WHERE IdBanco=" & cmbIdBanco.Text
'Abre el recordset
Recset.Open strSQL, Conn, etc, etc
'Llena el combo de Cuentas
With Recset
If Not .EOF Then
.MoveFirst
cmbCuenta.Clear
'Limpieza de los demas combos
'-----
'-----
'-----
Do While Not .EOF
cmbCuenta.AddItem .Fields("Cuenta").Value
'Demas campos, a sus respectivos combos ocultos
'-----
'-----
'-----
.MoveNext
Loop
End If
End With
Ahora bien, es posible que tengas un monton de cuentas por cada banco,
por lo que se podria lento el llenado del combo de cuentas.
Posiblemente sea necesario especificar mas detalles, por ejemplo, la
sucursal o el tipo de cuenta a mostrar, para agilizar la carga.
Saludos
Heich
--
Daria todo lo que se por saber la mitad de lo que ignoro
Usando ADO...
Asumiendo que los campos se llaman tal como los decribes...
En las declaraciones del modulo
Private rs as ADODB.Recordset
En el form load carga el primer combo
Dim strSQL as string
strSQL = "select id, nombre, cuenta1, cuenta2, cuenta3 "
strSQL = strSQL & "from Bancos order by nombre"
set rs = new ADODB.Recordset
rs.open strSQL, dbConex
(se asume que dbConex es tu objeto de conexion)
do while not rs.eof
combo1.additem rs!Nombre
combo1.Itemdata(combo1.newindex) = rs!id
rs.movenext
loop
set rs.activeconnection = nothing
Ya esta la fase inicial. Cuando se presenta la ventana el combo1
tiene una lista de los bancos. Ahora en el evento Click de este combo,
ojo, el evento es Click, NO Change pones esto:
dim i as integer
if combo1.listitem <> -1 then
rs.movefirst
rs.find "id=" & combo1.itemdata(combo1.listitem)
'Limpia el combo para que las cuentas de otros bancos
'no se acumulen.
combo2.clear
'Son tres campos de cuentas.
for i = 1 to 3
'Que no este vacia.
if "" & rs.fields("Cuenta" & i) <> "" then
combo2.additem rs.fields("Cuenta" & i)
end if
next i
end if
espero te sea util. Esto lo hice al vuelo, no esta probado y
puede ser que algo se me haya escapado.
Suerte!
Saga
-
Soluciones Para Mejorar
www.reset.com.mx
"Ignacio Ruben" <nach...@SPAMMEbtd.se> wrote in message
news:eypJoAGS...@TK2MSFTNGP11.phx.gbl...
http://vbnet.mvps.org/index.html?code/comboapi/comboheight.htm
--
Saludos
Guillermo
--
AG-CBA-ARG
"Juan Manuel Porras Gálvez" <Juan Manuel Porras
Gálv...@discussions.microsoft.com> escribió en el mensaje
news:C93C72A9-78F4-4FE9...@microsoft.com...
> Hola, ¿existe alguna forma de indicar mediante alguna propiedad o, en todo
> caso, alguna manera de que todos los valores de un objeto "combo" en
> Visual
> Basic 6.0 aparezcan sin "scroll vertical"?.
>
> No sé si tiene un número de valores predefinido y si se puede cambiar o
> no.