border

Miembros:
Mensajes:
Temas:
Online:

Ultimo Miembro:

 
 

  #1 (permalink)  
Antiguo 17-05-2008, 02:38:03
Un Nuevo Amigo
 
Registrado: mar 2006
Posts: 19
crow78 Valoración +2
Predeterminado Filtrar DataGrid

Saludos, tengo el siguiente problema, espero que alguien me pueda ayudar:
Estoy haciendo un aplicacion con bases de datos hay un modulo que se llama consulta, donde el usuario elige si es personal o general.En personal es en donde tengo el problema.La base de datos tiene dos tablas: Una de empleado con sus datos generales y otra que se llama asistencia en donde registro las asistencias:
Lo que deseo es buscar el empleado,mostrar sus datos en texts, y en un datagrid me filtre solo ese empleado de la tabla Asistencia, como una especie de historial.
La busqueda en la tabla general funciona y me muestra los datos en los texts, pero en el grid que debe buscar y filtrar solo el empleado no funciona, Ese es mi gran problema.
Este es el codigo que utilizo para buscar en la primera tabla:

Dim x As Integer,clave As Integer
Dim encon As Boolean
If TextBox1.Text = "" Then
MsgBox("Escriba el número del empleado")
Else
clave = TextBox1.Text()
For x = 1 To BindingContext(DataSet21, "Trabajadores").Count
If clave = TextBox2.Text Then
encon = True
Else
encon = False
BindingContext(DataSet21, "Trabajadores").Position += 1
End If
Next
If encon = True Then
MsgBox("Encontrado", MsgBoxStyle.Exclamation, "Administrador")
Else

MessageBox.Show("no encontrado")
End If
-----
Utilizo OleDbDataAdapter1,OleDbConnection1 y DataSet11

E intente esto para buscar en la segunda tabla:
remDim BDataView As New DataView
'Dim ODataSet As New DataSet
'BDataView.Table = ODataSet.Tables("Asistencia")
'BDataView.RowFilter = "num_empleado" & Me.TextBox14.Text
'DataGrid2.Visible = True
'Me.DataGrid2.CaptionText() = "historial" & Me.TextBox14.Text
'Me.DataGrid2.DataSource = BDataView

Pero me tira error

tambien intente esto:

If TextBox14.Text = "" Then
DataSet31.Clear()
OleDbDataAdapter2.Fill(DataSet31)
MessageBox.Show("error")
Else
Dim strSQL As String = ""
strSQL = "Select * From Asistencia Where num_empleado like '" & TextBox1.Text & "%'"

'OleDbDataAdapter2.SelectCommand.Connection = OleDbConnection2
'OleDbDataAdapter2.SelectCommand.CommandText = strSQL

'DataSet11.Clear()
'OleDbDataAdapter2.Fill(DataSet31)
DataGrid2.DataSource = strSQL
pero me da error....

Gracias de ante mano...
Responder Con Cita
  #2 (permalink)  
Antiguo 17-05-2008, 15:24:57
Buena Participación en el Foro
 
Registrado: jul 2007
Posts: 90
telu Valoración +2
Predeterminado Re: Filtrar DataGrid

Me parece que lo que necesitas es lo que se llama "Maestro Detalle". Si es asi, aquí te dejo 2 links (de los muchos que hay) de ejemplos.

Colabora.NET: El Nuevo Maestro Detalle de Visual Basic Express 2005
Colabora.NET: Informe Maestro detalle utilizando DataSet y Crystal Report
__________________
Es más fácil desintegrar un átomo que un preconcepto. Einstein
Responder Con Cita
  #3 (permalink)  
Antiguo 20-05-2008, 18:22:34
Avatar de jcarballo
Buena Participación en el Foro
 
Registrado: abr 2004
Posts: 85
jcarballo Valoración +2
Predeterminado Re: Filtrar DataGrid

Crow en la última linea del segundo caso debes poner:

DataGrid2.DataSource = DataSet31
(en lugar de DataGrid2.DataSource = strSQL)

Otro método que podrías usar es cargar el dataset completo un a sola vez y luego usar un DataView para mostrarlo en la grid.

Public DV as DataView
...
DV = New DataView(DataSet31)
, ( o bien DV = New DataView(DataSet31.Tables(0)) )

El DataView puedes asignarlo al DataSource de la Grid:

DataGrid2.DataSource = DV

DG y además tiene una propiedad RowFilter que puedes establecerle por ejemplo:

DV.RowFilter = "num_empleado like '" & TextBox1.Text & "%'"

y funciona perfecto sin conectarte tanto a la BD.
__________________
Saludos,

Juan Carlos Carballo Quevedo
Responder Con Cita
  #4 (permalink)  
Antiguo 20-05-2008, 20:52:19
Un Nuevo Amigo
 
Registrado: mar 2006
Posts: 19
crow78 Valoración +2
Predeterminado Re: Filtrar DataGrid

tenias razon, con esto funciono

DataGrid2.DataSource = DataSet31
(en lugar de DataGrid2.DataSource = strSQL)

Abusando de tu confianza dos preguntas mas:
Si quiero que me muestre 2 o mas registros, del mismo empleado me tira un error que este:

"No se pudieron habilitar las restricciones. Una o varias filas contienen valores que infringen las restricciones NON-NULL, UNIQUE o FOREIGN-KEY.", supongo que algo referente a la clave primaria, pero se supone que en esa tabla, puedo tener repetidos los registros, porque es una especie de bitacora.


Segundo: Si deseo pesonalizar el datagrid desde codigo como seria.

Espero no abusar

Ssaludos y gracias anticipadamente
Responder Con Cita
  #5 (permalink)  
Antiguo 22-05-2008, 00:19:22
Un Nuevo Amigo
 
Registrado: mar 2006
Posts: 19
crow78 Valoración +2
Predeterminado Re: Filtrar DataGrid

Me respondo a mi mismo , en lo que respecta a la personalizacion del datagrid desde codigo, ya quedo, y logre que el datagrid me muestre los registros con solo cambiar una propiedad del mismo, solo me queda el detalle, de que al momento de hacer la consulta, el datagrid se muestra reducido, solo con un (+), y le debo dar clic ahi, y luego seleccionar la tabla, para visualizar los datos.

Como suluciona eso...
Responder Con Cita
  #6 (permalink)  
Antiguo 24-05-2008, 17:24:57
Avatar de jcarballo
Buena Participación en el Foro
 
Registrado: abr 2004
Posts: 85
jcarballo Valoración +2
Predeterminado Re: Filtrar DataGrid

Pon la propiedad AllowNavigate en false.

Además debes poner el DataSource ahora a la tabla que deseas mostrar directamente, Por ejemplo:

DataGrid2.DataSource = DataSet31.Tables(0)
__________________
Saludos,

Juan Carlos Carballo Quevedo
Responder Con Cita
  #7 (permalink)  
Antiguo 24-05-2008, 23:54:18
Un Nuevo Amigo
 
Registrado: mar 2006
Posts: 19
crow78 Valoración +2
Predeterminado Re: Filtrar DataGrid

Muchas gracias, funciono de maravilla...Gracias...
Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado



La franja horaria es GMT. Ahora son las 13:02:20.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design

Alojado en el servicio Premium de Masquewebs | Diseño mejorado por MasqueWebs

right