elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 03:17  


Tema destacado: Deseas probar algunas mejoras a la interfaz del foro? Prueba cake! acerca de

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo, raul338)
| | |-+  Duda con MSHFlexGrid
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con MSHFlexGrid  (Leído 1,210 veces)
[ANTRAX]

Desconectado Desconectado

Mensajes: 24


ANTRAX


Ver Perfil WWW
Duda con MSHFlexGrid
« en: 25 Abril 2011, 14:53 »

Hola a todos, Bueno tengo una pregunta.
Si uso LIKE en un datagrid, funciona perfecto, ya que lo que escribo en un textbox, me lo muestra en la grilla.

El code que tengo en el datagrid es el siguiente:

Código
Private Sub txtSearch_Change()
sent = "SELECT * FROM stock WHERE Descripcion LIKE '" & txtSearch & "%" & "'"
Adodc1.RecordSource = sent
Adodc1.Refresh
End Sub

Lo que quiero hacer es que esto mismo funcione en un MSHFlexGrid

Espero que puedan ayudarme.
Saludos


En línea

79137913


Desconectado Desconectado

Mensajes: 780


4 Esquinas


Ver Perfil WWW
Re: Duda con MSHFlexGrid
« Respuesta #1 en: 25 Abril 2011, 16:08 »

HOLA!!!

El codigo no es mio es de Luis Navarro


La funcion es simple pones esa funcion y cuando la llamaspones

Código:
call ReGrid( "sentencia SQL" , NombredelaMSFLEXGRID)

Código
Public Sub ReGrid(strSQL As String, Grid As MSFlexGrid)
dim gDb as DataBase
Dim rRes As Recordset
Dim i As Integer
Dim iFila As Integer
 
   Set rRes = gDb.OpenRecordset(strSQL)
   Grid.Cols = rRes.Fields.Count
   Grid.Row = 0
   For i = 0 To rRes.Fields.Count - 1
       Grid.Col = i
       Grid = rRes.Fields(i).Name
   Next i
 
   Grid.Rows = 2
   iFila = 1
   Grid.Row = iFila
   Do While Not rRes.EOF
       For i = 0 To rRes.Fields.Count - 1
           Grid.Col = i
           If Not IsNull(rRes.Fields(i)) Then Grid = rRes.Fields(i)
           If Grid.ColWidth(i) < Len(rRes.Fields(i)) * 120 Then Grid.ColWidth(i) = Len(rRes.Fields(i)) * 120
       Next i
       iFila = iFila + 1
       Grid.Rows = iFila + 1
       Grid.Row = iFila
       rRes.MoveNext
   Loop
   Grid.Rows = iFila
End Sub

GRACIAS POR LEER!!!


« Última modificación: 25 Abril 2011, 16:53 por 79137913 » En línea

"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*                                                          Resumenes Cs.Economicas
[ANTRAX]

Desconectado Desconectado

Mensajes: 24


ANTRAX


Ver Perfil WWW
Re: Duda con MSHFlexGrid
« Respuesta #2 en: 25 Abril 2011, 16:26 »

Muchas gracias, ahora pruebo y comento
« Última modificación: 25 Abril 2011, 16:34 por [ANTRAX] » En línea

79137913


Desconectado Desconectado

Mensajes: 780


4 Esquinas


Ver Perfil WWW
Re: Duda con MSHFlexGrid
« Respuesta #3 en: 25 Abril 2011, 16:32 »

HOLA!!!

Ahi encontre esa funcion que te viene re bien ;)

GRACIAS POR LEER!!!
En línea

"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*                                                          Resumenes Cs.Economicas
[ANTRAX]

Desconectado Desconectado

Mensajes: 24


ANTRAX


Ver Perfil WWW
Re: Duda con MSHFlexGrid
« Respuesta #4 en: 25 Abril 2011, 16:44 »

Quedaria asi?

Código
Call ReGrid "SELECT * FROM Inventario WHERE Barcode LIKE '" & Text1.Text & "%" & "'" , flex
En línea

raul338
Moderador
***
Conectado Conectado

Mensajes: 2.371


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Duda con MSHFlexGrid
« Respuesta #5 en: 25 Abril 2011, 21:36 »

Quedaria asi?
Creo que si. Pero de serlo asegurate de validar bien el textbox para evitar sql injections
En línea

[ANTRAX]

Desconectado Desconectado

Mensajes: 24


ANTRAX


Ver Perfil WWW
Re: Duda con MSHFlexGrid
« Respuesta #6 en: 26 Abril 2011, 17:16 »

Estoy eternamente agradecido de 79137913 que pudo solucionar mi tema.
Por si otro llega a tener la misma duda:

Código
Private Sub Form_Load()
   ' Abre la conexión
   Call IniciarConexion
   ' carga el Recorset con todos los datos
   rs.Open "select * from Consulta1", cnn, adOpenStatic, adLockOptimistic
   ' llena el flexgrid
   
   Call CargarFlex(flex)
 
   Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=bd.mdb; Persist Security Info=False"
   Adodc1.RecordSource = "select * from Consulta1"
   Adodc1.Refresh
End Sub
 
Private Sub Text1_Change()
       rs.Close
       rs.Open "SELECT * FROM Inventario WHERE Barcode LIKE '" & Text1.Text & "%" & "'", cnn, adOpenStatic, adLockOptimistic
       Set flex.DataSource = rs
 
End Sub

Código
Option Explicit
 
Public Declare Sub InitCommonControls Lib "Comctl32" ()
Public flex As MSHFlexGrid
Public cnn As New ADODB.Connection
Public rs As New ADODB.Recordset
 
 
Sub CargarFlex(flex As MSHFlexGrid)
 
   Set flex.DataSource = rs
 
   With flex
 
       .ColAlignmentFixed(0) = 1
       .ColAlignment(0) = 1
 
       .ColAlignmentFixed(5) = 8
       .ColAlignment(5) = 8
   End With
End Sub
 
 
Public Sub IniciarConexion()
 
   With cnn
       .CursorLocation = adUseClient
       .Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=bd.mdb; Persist Security Info=False"
   End With
 
End Sub
 
Sub Desconectar()
   On Local Error Resume Next
   rs.Close
   Set rs = Nothing
   cnn.Close
   Set cnn = Nothing
End Sub

Modificar los nombres corerspondientes a las tablas de la BD
Saludos y muchas gracias por ayudarme
En línea

seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.214



Ver Perfil WWW
Re: Duda con MSHFlexGrid
« Respuesta #7 en: 27 Abril 2011, 05:18 »

consejo importante: dejar de usar el control ADODC y usar ADO desde codigo.

saludos.
En línea

Mucha gente, especialmente la ignorante desea castigarte por decir la verdad, por ser correcto, por ser tú. Nunca te disculpes por ser correcto, o por estar años delante de tu tiempo.
Si estas en lo cierto, y lo sabes, que hable tu razón. Incluso si eres una minoria de uno solo, la verdad sigue siendo la verdad. M. Gandhi
[ANTRAX]

Desconectado Desconectado

Mensajes: 24


ANTRAX


Ver Perfil WWW
Re: Duda con MSHFlexGrid
« Respuesta #8 en: 27 Abril 2011, 15:42 »

Cual es la diferencia?
En línea

seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.214



Ver Perfil WWW
Re: Duda con MSHFlexGrid
« Respuesta #9 en: 28 Abril 2011, 02:22 »

Cual es la diferencia?

muchas, dejar de depender de un control ocx es una importante y la otra es la manera de manejar los recordset etc..imaginate si tengo 10 formularios, en cada uno queiro usar 10 recodset para cada recordset tengo que meter un objeto de estos adodc y en total tengo 100 controls, se hace pesadisimo y si el proyecto es muy grande olvidate de mantenerlo si tenes que cambiar algo, aparte en performance es mejor.

en cambio con ADO desde codigo, declaras un objeto publico de tipo recordset (que seria lo mismo que poner un control adodc) y lo usas en toda la aplicacion cuando tengas ganas, lo abris y lo cerras y ya queda disponible para usar, por ahi cuando tengas que usar otro recordset lo declaras local en el formulario y lo usas y destruis ahi mismo, pero te olvidas de poner controles, asignarle la cadena de conexion etc.asi estan hechos los sistemas grandes, es lo mejor que te ofrece vb 6. y para los comandos de insert, delete  o update, declaras un objeto publico de tipo command y lo usas cuando tengas ganas, o sea que con pocas variables haces lo que quieras, no usar los metodos .Addnew o Delete..etc..mejor ejecutar la instruccion SQL "INSERT INTO.." o "DELETE FROM..."

saludos.
En línea

Mucha gente, especialmente la ignorante desea castigarte por decir la verdad, por ser correcto, por ser tú. Nunca te disculpes por ser correcto, o por estar años delante de tu tiempo.
Si estas en lo cierto, y lo sabes, que hable tu razón. Incluso si eres una minoria de uno solo, la verdad sigue siendo la verdad. M. Gandhi
79137913


Desconectado Desconectado

Mensajes: 780


4 Esquinas


Ver Perfil WWW
Re: Duda con MSHFlexGrid
« Respuesta #10 en: 28 Abril 2011, 04:25 »

HOLA!!!

Si, lo que dice seba es mucho mejor hacerlo asi.

Despues de que diga esto van a venir las puteadas, pero bueno...
Podes usr DAO desde codigo tambien xD

GRACIAS POR LEER!!!
En línea

"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*                                                          Resumenes Cs.Economicas
seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.214



Ver Perfil WWW
Re: Duda con MSHFlexGrid
« Respuesta #11 en: 29 Abril 2011, 05:18 »

HOLA!!!
Podes usr DAO desde codigo tambien xD

si, tambien se puede usar, el tema es que DAO, ya sea por codigo o con el control DATA (que usa DAO), esta totalmente obsoleto, microsoft dijo que ya no se debe usar, por eso se reemplazo todo por ADO.
En línea

Mucha gente, especialmente la ignorante desea castigarte por decir la verdad, por ser correcto, por ser tú. Nunca te disculpes por ser correcto, o por estar años delante de tu tiempo.
Si estas en lo cierto, y lo sabes, que hable tu razón. Incluso si eres una minoria de uno solo, la verdad sigue siendo la verdad. M. Gandhi
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
busqueda en MSHFlexgrid
Programación General
kumulu_nimbus 0 566 Último mensaje 28 Septiembre 2004, 15:10
por kumulu_nimbus
mshflexgrid
Programación Visual Basic
Bayron70 0 612 Último mensaje 28 Octubre 2005, 19:57
por Bayron70
mshflexgrid
Programación Visual Basic
::: Devil ::: 1 374 Último mensaje 1 Mayo 2007, 03:45
por CeLaYa
Buscar en MSHFlexGrid
Programación Visual Basic
::: Devil ::: 1 699 Último mensaje 2 Junio 2008, 22:10
por seba123neo
seleccionar en un MSHFlexgrid
Programación Visual Basic
deanelker 1 2,715 Último mensaje 21 Enero 2010, 17:43
por ssccaann43 ©
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines