Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: sebastianarroyo en 21 de Diciembre de 2007, 04:49:58 PM

Título: problemas con seleccion en tabla
Publicado por: sebastianarroyo en 21 de Diciembre de 2007, 04:49:58 PM
Hola, tengo el siguiente problema con una tabla acces 97 que estoy levantando con sql. (Visual Basic)
el problema es que no puedo mostrar toda la base de datos.
solamente me muestra el primer registro de la tabla.
y la idea es mostrar toda la tabla !
este es el codigo que estoy utilizando:


Dim cargdia As Database
Dim buscara1 As Recordset
Set cargdia = OpenDatabase("c:\Sound Media\BDuser\" & DIA & ".mdb")
Set buscara1 = cargdia.OpenRecordset("SELECT * from Luna1")

If buscara1.RecordCount > 0 Then
MsgBox buscara1.RecordCount
Audio1play.MSFlexGrid1.Rows = buscara1.RecordCount + 1
For buscador = 1 To buscara1.RecordCount

Audio1play.MSFlexGrid1.TextMatrix(h, 0) = buscara1!icono & ""

h = h + 1

buscara1.MoveNext
Next buscador

saludos y gracias
Título: problemas con seleccion en tabla
Publicado por: shephiroth en 21 de Diciembre de 2007, 06:20:29 PM
Quizas meto la pata, pero en vez de un recordset no deberias usar un DataTable??
Título: problemas con seleccion en tabla
Publicado por: [EX3] en 22 de Diciembre de 2007, 10:55:18 PM
No tengo ahora el VB delante pero recuerdo que para obtener todos los registros tenias que coger el recorset y hacer algo similar al dataReader de ADO.NET:

Do Not buscar1.EOF ' Mientras no sea final del recordset...
   valor = buscar(0) ' Obtiener el valor de la celda con indice 0 del registro actual.
   buscar1.MoveNext ' Actualiza el apuntador del registro al siguiente.
Loop

Salu2...
Título: problemas con seleccion en tabla
Publicado por: sebastianarroyo en 26 de Diciembre de 2007, 01:39:00 PM
la verdad es que no lo puedo lograr.
pregunto, con sql y de la forma que estoy haciendo, existe alguna posibilidad de hacerlo ?
saludos !!
Título: problemas con seleccion en tabla
Publicado por: [EX3] en 26 de Diciembre de 2007, 04:26:55 PM
Parece que no iba mal encaminado. Aqui un extracto de un programa que usa el metodo que comento:
Set rsRD = New ADODB.Recordset
rsRD.ActiveConnection = cnDoptico ' cnDoptico es un objeto de tipo Connection.
cnDoptico.CommandTimeout = 0
rsRD.Source = stSQLRD ' stSQLRD es un string con la consulta en SQL.
rsRD.Open , , adOpenStatic
While Not rsRD.EOF
   ...
   valor = rsRD(0) ' Obtiene el valor del primer campo del registro.
   ...
   rsRD.MoveNext ' Pasa al siguiente registro de la consulta.
Wend

De tu forma no podras leer mas que el primer registro ya que en ningun lado estas moviendo el puntero al siguiente registro de la consulta. Si has de recorrer toda la consulta el codigo de arriba seria el idoneo.

Salu2...
Título: problemas con seleccion en tabla
Publicado por: sebastianarroyo en 26 de Diciembre de 2007, 10:22:00 PM
Gracias, arme algo mas o menos y funciono. solamente tengo que perfeccionarlo.
muchas gracias por tu tiempo y por la solucion
Saludos.-