Autor
|
Tema: Duda con MSHFlexGrid (Leído 5,164 veces)
|
[ANTRAX]
Desconectado
Mensajes: 24
ANTRAX
|
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: 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
Mensajes: 1.169
4 Esquinas
|
HOLA!!! El codigo no es mio es de Luis NavarroLa funcion es simple pones esa funcion y cuando la llamaspones call ReGrid( "sentencia SQL" , NombredelaMSFLEXGRID) 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 pm 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*
|
|
|
[ANTRAX]
Desconectado
Mensajes: 24
ANTRAX
|
Muchas gracias, ahora pruebo y comento
|
|
« Última modificación: 25 Abril 2011, 16:34 pm por [ANTRAX] »
|
En línea
|
|
|
|
79137913
Desconectado
Mensajes: 1.169
4 Esquinas
|
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*
|
|
|
[ANTRAX]
Desconectado
Mensajes: 24
ANTRAX
|
Quedaria asi? Call ReGrid "SELECT * FROM Inventario WHERE Barcode LIKE '" & Text1.Text & "%" & "'" , flex
|
|
|
En línea
|
|
|
|
raul338
Desconectado
Mensajes: 2.633
La sonrisa es la mejor forma de afrontar las cosas
|
Quedaria asi?
Creo que si. Pero de serlo asegurate de validar bien el textbox para evitar sql injections
|
|
|
En línea
|
|
|
|
[ANTRAX]
Desconectado
Mensajes: 24
ANTRAX
|
Estoy eternamente agradecido de 79137913 que pudo solucionar mi tema. Por si otro llega a tener la misma duda: 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
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
|
consejo importante: dejar de usar el control ADODC y usar ADO desde codigo.
saludos.
|
|
|
En línea
|
|
|
|
[ANTRAX]
Desconectado
Mensajes: 24
ANTRAX
|
Cual es la diferencia?
|
|
|
En línea
|
|
|
|
seba123neo
|
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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
mshflexgrid
Programación Visual Basic
|
Bayron70
|
0
|
1,695
|
28 Octubre 2005, 19:57 pm
por Bayron70
|
|
|
mshflexgrid
Programación Visual Basic
|
::: Devil :::
|
1
|
1,404
|
1 Mayo 2007, 03:45 am
por CeLaYa
|
|
|
Buscar en MSHFlexGrid
Programación Visual Basic
|
::: Devil :::
|
1
|
2,508
|
2 Junio 2008, 22:10 pm
por seba123neo
|
|
|
seleccionar en un MSHFlexgrid
Programación Visual Basic
|
deanelker
|
1
|
5,058
|
21 Enero 2010, 17:43 pm
por ssccaann43 ©
|
|
|
FILTRAR UN MSHFlexGrid
Programación Visual Basic
|
omarzinho86
|
0
|
2,159
|
22 Septiembre 2014, 19:39 pm
por omarzinho86
|
|