Programación General > Visual Basic 6.0 e inferiores

 Re: Rellenar un datagrid con los resultados de una consulta

(1/3) > >>

mluqero:
Hola a todos. Tengo un pequeño gran problema. A lo mejor os parece una bobada pero no se como hacerlo.
Tengo una consulta que me devuelve varios registros. Necesito meter esos registros en un datagrid (u otra estructura de este tipo) para mostarlos al usuario y no se como hacerlo.
Gracias de antemano.
:sorcerer:

angelescj:
Para cargar un datagrid se debe asignar valor a la propiedad datasource:
Set datagrid1.datasource=adodc1
donde Adodc1 es el control de datos.
Si quieres lo puedes conectar a un command de un Dataenvironment,y sería:
Set datagrid1.datasource=dteDatos.command("elquesea").execute
:suerte:

mluqero:
Si, tienes  razon pero es que en el caso que me comentas se me cargan todos los registros y yo solo quiero que a medida que voy recorriendo un recordset, los registros que cumplen la condicion de la busqueda, se me inserten el datagrid
Lo que quiero hacer es sacar dentro de un datagrid, todos los registros comprendidos entre 2 fechas dadas por el usuario.
Gracias de antemano.:ayuda:

ccortes:
Puedes probar digitando en un textbox el dato a consultar y con un command, aunque si lo deseas evitas el command y agregas el codigo al evento keypressed del texbox, el codigo seria mas o menos asi:

Private Sub CmdBuscar_Click()
'Declaro las variables
Dim moRecordset As New ADODB.Recordset
Dim msSql As String
Dim mbEncontro As Boolean
' Creo el SQL

mbEncontro = False

If Trim(Txtcedula) <> "" Then
   
    mbEncontro = True
    msSql = " Select *"
    msSql = msSql + " from tabla"
    msSql = msSql + " Where campo = '" + Trim(Txtcedula) + "'"

End If

'Ejecuto la sentencia en SQL
If Trim(msSql) = "" Then Exit Sub
If mbEncontro = False Then Exit Sub

moRecordset.Open msSql, goDatabase, adOpenStatic, adLockOptimistic

'limpio el grid para que no entre basura
MSFlexGrid.Clear
MSFlexGrid.Rows = 1


'Indico el ancho del grid
MSFlexGrid.ColWidth(0) = 1000
MSFlexGrid.ColAlignment(0) = 1
MSFlexGrid.ColWidth(1) = 1350

    With MSFlexGrid
        'Titulo de la columna personalizado
        .Row = 0
        .Col = 0
        .Text = "Nombre 1"
        .CellFontBold = True
       
        .Row = 0
        .Col = 1
        .Text = "Nombre 2"
        .CellFontBold = True
'Asi hasta obtener el total de columnas del flexgrid                
 End With

If Not moRecordset.EOF And Not moRecordset.BOF Then

Do While Not moRecordset.EOF

MSFlexGrid.AddItem moRecordset.Fields(1).Value + Chr$(9) + moRecordset.Fields(2).Value
Txtcedula.Text = Trim(moRecordset.Fields(0).Value)
    moRecordset.MoveNext
       
   Loop
   
    moRecordset.Close
Else
   MsgBox "Datos que Busca no existen  !!!", vbCritical, "Atención"
    Txtcedula.SetFocus
   
    End If
Exit Sub

Txtcedula.SetFocus

End Sub

angelescj:
Haz la consulta teniendo en cuenta la codición:
dteDatos.Commmands("elquesea").CommandText= "Select * from Tabla Where condicion"
Set Datagrid1.Datasource=dteDatos.Commands("elquesea").execute
Para pasarle una cláusula SQL a un command debes decirle en las propiedades del Command que el origen de datos es una consulta SQL.

:suerte:

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa