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

Pregunta sobre recordset en Visual Basic 6, anexo código.

Estas en el tema de Pregunta sobre recordset en Visual Basic 6, anexo código. en el foro de Visual Basic clásico en Foros del Web. ''''''' Tengo el siguiente codigo que hace lo siguiente: ''''''' Declarar variable de conexion y variable recordset para una bd y ''''''' crearlas con new, ...
  #1 (permalink)  
Antiguo 24/08/2009, 19:54
 
Fecha de Ingreso: julio-2009
Mensajes: 26
Antigüedad: 14 años, 9 meses
Puntos: 0
Información Pregunta sobre recordset en Visual Basic 6, anexo código.

''''''' Tengo el siguiente codigo que hace lo siguiente:
''''''' Declarar variable de conexion y variable recordset para una bd y
''''''' crearlas con new,
''''''' entonces creo una variable string donde guardo el path de la bd, abro la
''''''' conexion y en la variable recordset hago que seleccione el registro SECCION
''''''' de la tabla SECCION y las ordeno, y luego utilizo MSHFlexGrid1 y un
''''''' combobox para mostrar los datos, lo que quiero saber es como guardar en
''''''' una variable temporal el dato que se selecciono en el combo box
, lo
''''''' intente guardar en un String y me dio error dice que debe guardarse en
'''''''' variant o en un objeto y luego utilice un objeto pero igual
''''''' me da error, quisiera que me dijeran que es exactamente lo que pasa con el
''''''' recordset cuando realiza la consulta de la BD Access 2007 y manda estos
''''''' valores con additem al combo box combo3, gracias de antemano por la ayuda '''''''

Private Sub Form_Load()


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 SECCION order by SECCION ", MiConexion, adOpenDynamic, adLockOptimistic

While Not MiRecordset.EOF
Combo3.AddItem MiRecordset!SECCION
MiRecordset.MoveNext
Wend
End Sub
  #2 (permalink)  
Antiguo 25/08/2009, 05:50
 
Fecha de Ingreso: noviembre-2005
Mensajes: 751
Antigüedad: 18 años, 5 meses
Puntos: 13
Respuesta: Pregunta sobre recordset en Visual Basic 6, anexo código.

Hola

No se si hay algo especial que no consigo ver, pero en principio simplemente declara una variable tipo string (si lo que contiene es texto) e igualalo al contenido del combo.

Código:
Variable = combo1.text
P.D.: Viendo que has establecido una conexión a BD, creo que esta respuesta es muy simple, seguro que hay algo que no he comprendido bien, incluye el código de la parte en la que intentas guardar el valor del combo.

--Saludos--
  #3 (permalink)  
Antiguo 25/08/2009, 09:34
 
Fecha de Ingreso: julio-2009
Mensajes: 26
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Pregunta sobre recordset en Visual Basic 6, anexo código.

Private Sub Combo3_Click()
Dim cadena As String
cadena = Me.Combo3.Text
MsgBox = "Elegiste la seccion: " & cadena
End Sub

Aqui pongo el código de mi combo3 en otros programas ya lo había hecho asi y no marcaba error, es por el tipo de dato de la base de datos, pero no se como sacar su equivalente, al menos no todavía, tendré que preguntar en el foro de BDs. Ya que vea que es lo escribo, gracias.
  #4 (permalink)  
Antiguo 27/08/2009, 01:14
 
Fecha de Ingreso: noviembre-2005
Mensajes: 751
Antigüedad: 18 años, 5 meses
Puntos: 13
Respuesta: Pregunta sobre recordset en Visual Basic 6, anexo código.

Hola

Has probado a poder ese mismo código en el evento Change en lugar de en el clic?

--Saludos--
  #5 (permalink)  
Antiguo 27/08/2009, 09:55
 
Fecha de Ingreso: julio-2009
Mensajes: 26
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Pregunta sobre recordset en Visual Basic 6, anexo código.

Si tambien probé con change() y marcar error igual, lo que pasa es que el recordset te regresa una tabla con dos columnas uno con el indice y el otro con los valores de la tabla que mando llamar, los valores son del tipo integer estandar, voy a ver si puedo guardar los valores en una matriz no se si servira que sea de tipo variant o string, porque recordset es un objeto, pero en cuanto sepa lo escribo.
  #6 (permalink)  
Antiguo 18/11/2009, 18:28
 
Fecha de Ingreso: julio-2009
Mensajes: 26
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Pregunta sobre recordset en Visual Basic 6, anexo código.

Bueno aqui esta lo que hice espero que le sirva a alguien:


Option Explicit

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
List1.Clear

i = -1

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

While Not MiRecordset.EOF
i = i + 1
ReDim Preserve arreglocombo1(i)
arreglocombo1(i) = MiRecordset.Fields("SECCION")
MiRecordset.MoveNext
Wend
For i = 0 To UBound(arreglocombo1)
Combo1.List(Combo1.ListIndex) = Combo1.List(Combo1.ListIndex) & arreglocombo1(i)
Next i

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 NOMBRE FROM LIMLOC_DTTO_SECC Order by SECCION ", MiConexion, adOpenDynamic, adLockOptimistic

i = -1
While Not MiRecordset.EOF
i = i + 1
ReDim Preserve arreglocombo2(i)
arreglocombo2(i) = MiRecordset.Fields("NOMBRE")

MiRecordset.MoveNext
Wend

Me.Combo2.ListIndex = Me.Combo1.ListIndex

For i = 0 To UBound(arreglocombo2)

Combo2.List(Combo2.ListIndex) = Combo2.List(Combo2.ListIndex) & arreglocombo2(i)

Next i


MiRecordset.Close
MiConexion.Close

End Sub



'Public Event TextChanged As EventHandler
'End Sub


'BYE.
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 04:09.