• Miércoles 24 de Abril de 2024, 20:11

Autor Tema:  Actualización En Una Datagrid De Vb6  (Leído 3797 veces)

Aldur

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Actualización En Una Datagrid De Vb6
« en: Domingo 21 de Marzo de 2004, 08:10 »
0
Hola y espero que alguien me pueda ayudar, bien les explico lo que quiero hacer, use un command par crear una consulta SQL, claro un command del Dataenvironment. Bien el command lo enlace al Datagrid, y funciona veo los datos, pero ahora quiero que por medio de un combo, pueda actualizar mi grid, pongo un ejempo:

con el command hago una consulta a una tabla gastos con relacion a una tabla de clasificacion de gastos y la consulta quedo de la siguiente manera:

SELECT egresos.fechegre_egr, clasif_egreso.descripegre_claeg, egresos.mtoegre_egr , egresos.obseregre_egr From clasif_egreso, egresos WHERE clasif_egreso.codegre_claeg = egresos.codegre_egr ORDER BY egresos.fechegre_egr

ahora bien lo que quiero es que mi nueva consulta que es:

SELECT egresos.fechegre_egr, clasif_egreso.descripegre_claeg, egresos.mtoegre_egr , egresos.obseregre_egr From clasif_egreso, egresos WHERE clasif_egreso.codegre_claeg = egresos.codegre_egr AND Month(fechegre_egr) = combomes.text ORDER BY egresos.fechegre_egr

pueda mostrarse en el datagrid una vez escoja yo un mes del combo

please si alguien me pueda ayudar con esto estare muy agradecido!!!    :rolleyes:

aura

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: Actualización En Una Datagrid De Vb6
« Respuesta #1 en: Lunes 22 de Marzo de 2004, 10:25 »
0
Hola:

Espero que esto te ayude, segun he entendido, si lo que quieres es que el datagrid refresce al cambiar el datasource asignado, pues existe un evento que se llama refresh, que refresca todas los cambios que se han realizado en el datasource

Espero que esto te pueda ayudar ...

Aldur

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Actualización En Una Datagrid De Vb6
« Respuesta #2 en: Lunes 22 de Marzo de 2004, 17:09 »
0
Hola Aura, te estoy agradecido por tratar de solucionar mi pequeño problema, lo que me planteas ya lo tengo en el codigo, pero no me refresca por eso hice el planteamiento para ver como me pueden orientar, te muestro cual es el codigo para ver si me puesdes orientar, el codigo es el siguiente:

Private Sub combomes_Click()
     Select Case combomes.Text
        Case Is = "Enero"
            Mes = 1
        Case Is = "Febrero"
            Mes = 2
        Case Is = "Marzo"
            Mes = 3
        Case Is = "Abril"
            Mes = 4
        Case Is = "Mayo"
            Mes = 5
        Case Is = "Junio"
            Mes = 6
        Case Is = "Julio"
            Mes = 7
        Case Is = "Agosto"
            Mes = 8
        Case Is = "Septiembre"
            Mes = 9
        Case Is = "Octubre"
            Mes = 10
        Case Is = "Noviembre"
            Mes = 11
        Case Is = "Diciembre"
            Mes = 12
    End Select
    Call actualizar_consulta
End Sub

Private Sub actualizar_consulta()
 
  If DE_SICPOS.rsCmEgresos.State = adStateOpen Then
     DE_SICPOS.rsCmEgresos.Close
  End If
   
  ConsultaSQL = "SELECT egresos.fechegre_egr, clasif_egreso.descripegre_claeg, egresos.mtoegre_egr , egresos.obseregre_egr From clasif_egreso, egresos WHERE clasif_egreso.codegre_claeg = egresos.codegre_egr AND Month(fechegre_egr) = mes ORDER BY egresos.fechegre_egr"
   
  DE_SICPOS.Commands("cmegresos").CommandText = ConsultaSQL
  DE_SICPOS.Commands("cmegresos").CommandType = adCmdText
  DE_SICPOS.Recordsets("cmegresos").LockType = adLockReadOnly
  DE_SICPOS.Recordsets("cmegresos").Open
 
  DE_SICPOS.Recordsets("cmegresos").Requery
 
  Set DataGrid1.DataSource = DE_SICPOS
  DataGrid1.Refresh
 
  Call Transf_Mes '/*********** llamado a la rutina del nombre de mes
  DataGrid1.Caption = "RELACION DE EGRESOS DEL MES DE  " + NomMes
  DataGrid1.Columns(0).Caption = "Fecha"
  DataGrid1.Columns(0).Width = 1000
  DataGrid1.Columns(1).Caption = "Descripción"
  DataGrid1.Columns(1).Width = 3000
  DataGrid1.Columns(2).Caption = "Monto"
  DataGrid1.Columns(2).Alignment = dbgRight
  DataGrid1.Columns(2).NumberFormat = "##,###0.00"
  DataGrid1.Columns(2).Width = 2500
  DataGrid1.Columns(3).Caption = "Observaciones"
  DataGrid1.Columns(3).Width = 3000
 
End Sub


Private Sub Transf_Mes()
    Select Case Mes
        Case Is = 1
            NomMes = "ENERO"
        Case Is = 2
            NomMes = "FEBRERO"
        Case Is = 3
            NomMes = "MARZO"
        Case Is = 4
            NomMes = "ABRIL"
        Case Is = 5
            NomMes = "MAYO"
        Case Is = 6
            NomMes = "JUNIO"
        Case Is = 7
            NomMes = "JULIO"
        Case Is = 8
            NomMes = "AGOSTO"
        Case Is = 9
            NomMes = "SEPTIEMBRE"
        Case Is = 10
            NomMes = "OCTUBRE"
        Case Is = 11
            NomMes = "NOVIEMBRE"
        Case Is = 12
            NomMes = "DICIEMBRE"
    End Select

End Sub

ves eso es lo que tengo y no se si esta bien o como pudiera hacerlo de otra forma, si sabes algo te lo agradezco desde ya..... Saludos y espero que me puedas ayudar gracias nuevamente  :hola:   :)

aura

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: Actualización En Una Datagrid De Vb6
« Respuesta #3 en: Miércoles 24 de Marzo de 2004, 10:56 »
0
Hola Aldur:

La verdad es que a la hora de trabajar con datatagrid, hay tantas formas de hacerlo, como programadores existen en este foro, de todas formas yo te envio un codigo que tengo hecho...

Código: Text
  1. Private Sub CargaDatosGrid(Selection as string, NmFichero as string, Condicion1 as string, Condicion2 as string, Condicion3 as string)
  2.  
  3. Dim SqlGrid As String
  4. Dim nCon As Integer
  5. Dim TextoGrid As String
  6.  
  7. GridBusca.Rows = 1
  8. GridBusca.Cols = NumColumnas + 1
  9. SqlGrid = ""
  10. SqlGrid = SqlGrid + " SELECT " + Selection + " FROM " + NmFichero
  11. If Condition1 <> "" Then
  12.     SqlGrid = SqlGrid + " WHERE " + Condition1
  13. End If
  14. If Condition2 <> "" Then
  15.     SqlGrid = SqlGrid + " AND " + Condition2
  16. End If
  17. If Condition3 <> "" Then
  18.     SqlGrid = SqlGrid + " AND " + Condition3
  19. End If
  20.  
  21. Set TbGrid = Conect.Execute(SqlGrid)
  22. 'Tbgrid = Recordset
  23. 'Conect = Connection
  24.  
  25. Set GridBusca.DataSource = TbGrid
  26.  
  27. CargaPosiciones
  28.  
  29. End Sub
  30.  
Este Codigo es de un grid de consulta que se va cambiando, dependiendo de la posicion del usuario, y la verdad es que funciona bastante bien, espero que te pueda ayudar...
De todas formas y como ves yo no utilizo la propiedad Refresh, y me funciona bien
espero que esto te pueda ayudar ...

Aldur

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Actualización En Una Datagrid De Vb6
« Respuesta #4 en: Miércoles 24 de Marzo de 2004, 16:31 »
0
:hola: Hoa Aura, bueno muchas gracias, por tu información, voy a intertarlo de ese modo, cualquier cosa pos te vuelvo a escribir, y de antemano gracias nuevamente

EL Loco

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Actualización En Una Datagrid De Vb6
« Respuesta #5 en: Martes 30 de Marzo de 2004, 20:14 »
0
fijate si el comando q tenes vinculado al datagrid devuelve 1 RecordSet
y hace  RS.requery a ver si con eso solucionas
o veo alguna otra cosa
El LOcO

Analista Programador
VB 6.0
Clipper
Pascal
SQL Server 2000

A las Ordenes