Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Dos consultas de recorset en un solo combobox?

Estas en el tema de Dos consultas de recorset en un solo combobox? en el foro de Visual Basic clásico en Foros del Web. Quisiera saber como poner 2 consultas de recorset ADO hechas a una BD access 2007 en un solo combobox, de la forma: numero_localidad nombre_localidad ejemplo: ...
  #1 (permalink)  
Antiguo 19/11/2009, 18:45
 
Fecha de Ingreso: julio-2009
Mensajes: 26
Antigüedad: 14 años, 9 meses
Puntos: 0
Dos consultas de recorset en un solo combobox?

Quisiera saber como poner 2 consultas de recorset ADO hechas a una BD access 2007 en un solo combobox, de la forma:
numero_localidad nombre_localidad
ejemplo:
1234 las cuatas
1445 el templo
1556 las bugambilias

etc.

Espero que me puedan dar ideas, igual cuando pueda contestare yo preguntas aqui o en otro foro, gracias de antemano por la ayuda.
  #2 (permalink)  
Antiguo 20/11/2009, 05:11
Avatar de oso_cat  
Fecha de Ingreso: septiembre-2009
Ubicación: Granollers
Mensajes: 18
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Dos consultas de recorset en un solo combobox?

No se si funciona, pero yo probaría lo siguiente:

Prueba a realizar una sola consulta para obtener los dos campos y los almacenas en un recordset.

Luego insertas los campos del recordset en el combo:

do while not rst.EOF
combo.AddItem rst!numero_localidad & " " & rst!nombre_localidad
rst.movenext
loop
  #3 (permalink)  
Antiguo 25/11/2009, 12:56
 
Fecha de Ingreso: julio-2009
Mensajes: 26
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Dos consultas de recorset en un solo combobox?

Lo que hice fue que al seleccionar determinada seccion apareciera el num_localidad y su nombre_localidad correspondiente, aqui dejo el codigo por si te sirve.
Option Explicit
'Declarar las variables

Dim lIndex As Long

Dim MiConexion As ADODB.Connection
Dim MiRecordset As ADODB.Recordset

Dim arreglocombo1() As String
Dim arreglocombo2() As String
Dim i As Integer
Dim ruta As String


Private Sub Form_Load()
Combo1.Clear



Set MiConexion = New ADODB.Connection
Set MiRecordset = New ADODB.Recordset

ruta = App.Path & "\bd1.mdb"

MiConexion.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & ruta & ";Persist Security Info=False"
MiConexion.CursorLocation = adUseClient
MiConexion.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ruta
MiRecordset.Open "SELECT SECCION FROM LIMLOC_DTTO_SECC Where DISTRITO = 1 Order by SECCION", MiConexion, adOpenDynamic, adLockOptimistic

i = 0

While Not MiRecordset.EOF
ReDim Preserve arreglocombo1(i)

Combo1.List(Combo1.ListIndex) = MiRecordset.Fields("SECCION")
arreglocombo1(i) = MiRecordset.Fields("SECCION")
MiRecordset.MoveNext
i = i + 1
Wend

MiRecordset.Close
MiConexion.Close

'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''

MiConexion.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & ruta & ";Persist Security Info=False"
MiConexion.CursorLocation = adUseClient
MiConexion.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ruta
MiRecordset.Open "SELECT LOCALIDAD, NOMBRE FROM LIMLOC_DTTO_SECC Where DISTRITO = 1 Order by SECCION", MiConexion, adOpenDynamic, adLockOptimistic

'While Not MiRecordset.EOF
'With Combo1
'.AddItem MiRecordset.Collect("LOCALIDAD")
'.ItemData(.NewIndex) = MiRecordset.Collect("NOMBRE")
'End With
'MiRecordset.MoveNext
'Wend

'y para recuperar el numero:

'Dim numero As Long
'numero = Combo1.ItemData(Combo1.ListIndex)
'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''
i = 0
While Not MiRecordset.EOF
ReDim Preserve arreglocombo2(i)
'Combo2.List(Combo1.ListIndex) = MiRecordset.Fields("LOCALIDAD") & MiRecordset.Fields("NOMBRE")
arreglocombo2(i) = MiRecordset.Fields("LOCALIDAD") & MiRecordset.Fields("NOMBRE")
MiRecordset.MoveNext
i = i + 1
Wend

End Sub

Private Sub Combo1_Click()
Combo2.Clear
lIndex = Combo1.ListIndex

Combo2.List(Combo2.ListIndex) = Combo2.List(Combo1.ListIndex) & arreglocombo2(lIndex)

'ListCount: sirve para indicar el número de elementos en la lista correspondiente
'ListIndex: proporciona el número de orden del elemento que se ha seleccionado; AddItem y RemoveItem permite agregar o eliminar elementos.
'List (n): obtiene el elemento cuyo número de orden está indicado con “n”.
'Text: consiste en una propiedad que muestra el texto de la parte Textbox del Combobox, la cual puede introducirse a través del teclado o ser una opción seleccionada, como vimos anteriormente.
'MsgBox "Seleccionado " & Combo2.List(Combo1.ListIndex) & " con indice " & lIndex

End Sub

'''ok
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:38.