2 fltros para un grid
Publicado por DarkRusel (9 intervenciones) el 17/03/2009 19:01:51
Buenas tardes:
Estoy trabajando en un proyecto de un video club para gestionar los alquileres de peílucas. Y me eh encontrado con un problema que nunca antes había tenido. ¿como utilizar más de un filtro para un búsqueda a traves de un MSHFlexGrid? La ídea es la siguiente: Tengo una base de datos MS Access 2003 y un proyecto en VB6.0 y quiero buscar las películas pero filtrandolas por el formato de las mismas. por ejemplo DVD o VHS. en el proyecto tengo lo siguiente:
2 Option Buttons en array. (uno para DVD y el otro para VSH) 2 textbox en uno (llamado Text1) iría el título de la pelicula que estamos buscando y en el Text10 le asiganamos el valor 1 solo para tener una referencia más sencilla en el código para realizar el filtrado. y un command button. La tabla en la base de datos (al menos los dos campos que nos intenresan) estan formados asi:
Titulo (como texto)
Cod_Formato (como Número)
La idea es que al seleccionar el Option button de dvd solamente me busque dentro de la tabla películas. Todos quellos titulos que posean el valor 1 en el campo Cod_Formato. y cuando utilize el de VHS el valor 2 en el mismo campo. El código que eh estado utilizando es el siguiente:
Option Explicit
Dim Aux As Recordset
Dim rs As Recordset
Dim sql As String
Dim sql2 As String
Dim opt As String
Private Sub Command1_Click()
Set Aux = New ADODB.Recordset
If opt = 0 Then
sql = "SELECT Peliculas.Cod_Peli, Peliculas.Titulo, Peliculas.Cod_Formato, Peliculas.Stock " & _
"From Peliculas " & _
sql = "SELECT Peliculas.Cod_Peli, Peliculas.Titulo, Peliculas.Cod_Formato, Peliculas.Stock " & _
"From Peliculas " & _
"WHERE (((Peliculas.Titulo)Like '" & Text1.Text & "%'))"
End If
Aux.Open sql, inicial.cn, adOpenDynamic, adLockOptimistic
DibujarGrilla
End Sub
Private Sub Option1_Click(Index As Integer)
Select Case Index
Case 0
opt = 0
Me.Text10.Text = 1
Case 1
opt = 1
End Select
End Sub
Private Sub DibujarGrilla()
Set MSHFlexGrid1.DataSource = Aux
With MSHFlexGrid1
.ColWidth(0) = 300
.ColWidth(1) = 500
.ColWidth(2) = 2500
.ColWidth(3) = 700
.ColWidth(4) = 2500
End With
End Sub
Private Sub MSHFlexGrid1_Click()
If Me.MSHFlexGrid1.CellForeColor = &H800000 Then
Call PintarFila(&H80000008, False) 'LetraNegro
Me.MSHFlexGrid1.TextMatrix(Me.MSHFlexGrid1.Row, 0) = ""
Else
Call PintarFila(&H800000, True) 'LetraAzul
Me.MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 0) = "->"
End If
End Sub
Sub PintarFila(color As Variant, SiNo As Boolean)
Dim i As Integer
For i = 0 To Me.MSHFlexGrid1.Cols - 1
Me.MSHFlexGrid1.Col = i
Me.MSHFlexGrid1.CellForeColor = color
Me.MSHFlexGrid1.CellFontBold = SiNo
Next
End Sub
La pregunta es: Como hágo para Realizar la búsqueda y filtrar el valor que tengo en el campo Text10 ?
Desde ya muchisimas gracias
Estoy trabajando en un proyecto de un video club para gestionar los alquileres de peílucas. Y me eh encontrado con un problema que nunca antes había tenido. ¿como utilizar más de un filtro para un búsqueda a traves de un MSHFlexGrid? La ídea es la siguiente: Tengo una base de datos MS Access 2003 y un proyecto en VB6.0 y quiero buscar las películas pero filtrandolas por el formato de las mismas. por ejemplo DVD o VHS. en el proyecto tengo lo siguiente:
2 Option Buttons en array. (uno para DVD y el otro para VSH) 2 textbox en uno (llamado Text1) iría el título de la pelicula que estamos buscando y en el Text10 le asiganamos el valor 1 solo para tener una referencia más sencilla en el código para realizar el filtrado. y un command button. La tabla en la base de datos (al menos los dos campos que nos intenresan) estan formados asi:
Titulo (como texto)
Cod_Formato (como Número)
La idea es que al seleccionar el Option button de dvd solamente me busque dentro de la tabla películas. Todos quellos titulos que posean el valor 1 en el campo Cod_Formato. y cuando utilize el de VHS el valor 2 en el mismo campo. El código que eh estado utilizando es el siguiente:
Option Explicit
Dim Aux As Recordset
Dim rs As Recordset
Dim sql As String
Dim sql2 As String
Dim opt As String
Private Sub Command1_Click()
Set Aux = New ADODB.Recordset
If opt = 0 Then
sql = "SELECT Peliculas.Cod_Peli, Peliculas.Titulo, Peliculas.Cod_Formato, Peliculas.Stock " & _
"From Peliculas " & _
sql = "SELECT Peliculas.Cod_Peli, Peliculas.Titulo, Peliculas.Cod_Formato, Peliculas.Stock " & _
"From Peliculas " & _
"WHERE (((Peliculas.Titulo)Like '" & Text1.Text & "%'))"
End If
Aux.Open sql, inicial.cn, adOpenDynamic, adLockOptimistic
DibujarGrilla
End Sub
Private Sub Option1_Click(Index As Integer)
Select Case Index
Case 0
opt = 0
Me.Text10.Text = 1
Case 1
opt = 1
End Select
End Sub
Private Sub DibujarGrilla()
Set MSHFlexGrid1.DataSource = Aux
With MSHFlexGrid1
.ColWidth(0) = 300
.ColWidth(1) = 500
.ColWidth(2) = 2500
.ColWidth(3) = 700
.ColWidth(4) = 2500
End With
End Sub
Private Sub MSHFlexGrid1_Click()
If Me.MSHFlexGrid1.CellForeColor = &H800000 Then
Call PintarFila(&H80000008, False) 'LetraNegro
Me.MSHFlexGrid1.TextMatrix(Me.MSHFlexGrid1.Row, 0) = ""
Else
Call PintarFila(&H800000, True) 'LetraAzul
Me.MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 0) = "->"
End If
End Sub
Sub PintarFila(color As Variant, SiNo As Boolean)
Dim i As Integer
For i = 0 To Me.MSHFlexGrid1.Cols - 1
Me.MSHFlexGrid1.Col = i
Me.MSHFlexGrid1.CellForeColor = color
Me.MSHFlexGrid1.CellFontBold = SiNo
Next
End Sub
La pregunta es: Como hágo para Realizar la búsqueda y filtrar el valor que tengo en el campo Text10 ?
Desde ya muchisimas gracias
Valora esta pregunta


0