Buscar datos en rejilla

Tengo un control msflexgrid cargado de datos, y me gustaría saber como puedo hacer una búsqueda de una determinada cadena de caracteres o de datos numéricos en la rejilla.

2 respuestas

Respuesta
1
Debes hacer dos ciclos for
I contara registros
J contara columnas
For I=0 to msflexgrid.Rwos-1
For j=0 to msFlexgrid.cols-1
Msflexgrid.Col = j
Msflexgrid.Rwos = I
if Msflexgrid.Text = "Cadena" then
accion
end if
next J
next i
Es una rutina que buscara celda por celda la cadena que deseas.
Espero te sirva, si te sirve agradece ahumntando mi puntuación
Un amigo
Respuesta
1
Pues te tienes que kurra una función que se petee la parrilla celda a celda comparando con tu dato
Es decir
Private sub Boton_click
Dim encontrado as boolean
encontrado=Busca_Dato (Grid,Dato)
end sub
Privaten funcion Encontrado(Dr as msfglexGrid,Dato DatoX as string)
dim x as integer
dim y as integer
For x=1 to grdx.rows-1
for y=1 to grdx.cols-1
if grdx.textmatrix(x,y)=datox then
encontrado=true
end if
end if
next y
next x
Gracias por tu respuestas, pero estoy un pelín pegado en esto de visual basic, serias tan amable de explicarme un poco como funciona el código que me has enviado. Un saludo
Vamos a ver
La idea es que tengas una función, a la que le pases cualquier parrilla, y cualquier texto a
¿Buscar vale?
De manera que para probar la vamos a usar en un botón
Private Sub cmdBuscar_Click() ' al hacre doble_click en el diseño sobre el boton
dim encotrado as boolean ' variable si/no segun haya encontrado o no
encontrado=Busca_Dato(Parrilla,"Pepe") ' a la variable le igualamos la funcion de
' busqueda,y a la funcion le pasamos
' la parrilla donde buscara y un texto
End Sub
Private function Busca_Dato(Parr as MsFlexGrid,DatoX as string) as boolean
' definicion de la funcion,recibe una parrilla y un texto y retornara un true/false
dim FilX as integer ' controlaa la filas
dim colX as integer ' controlara las columnas
dim enco as boolean 'chivato de si encuentra o no
enco=false ' no lo hemos encontrado,tampoc hemos buscado :-)
for filx=1 to parr.rows-1 ' desde la fila 1(pasamos de cabezeras) hasta el numero de filas-1
for colx=1 to parr.colx -1 'desde la col1 hasta el total-1 es decir para cada fila recorremos cada columna
if datoX=parr.textmatrix(filx,colx) then ' si el dato es = al valor de la celda analizada
msgbox "Encontrado"
enco=true
end if
next colx ' sigf col
next filx' siguyiente fila
'analizamos enco por si ha cambiado
if enco=true then
Busca_Dato=true ' retornamos un si
else
Busca_Dato=false ' retornamos un no
end if
end function
A ver k tal te va

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas