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.
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
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