border

Miembros:
Mensajes:
Temas:
Online:

Ultimo Miembro:

 
 

  #1 (permalink)  
Antiguo 22-03-2008, 20:54:40
Buena Participación en el Foro
 
Registrado: mar 2008
Posts: 43
Tholl Valoración +2
Predeterminado Filtrar Datagridview con 2 combobox

Para realizar el filtro utilizo un Dataview llamado VISTA y trato de filtrar el grid con los valores cogidos de 2 combos. Al hacerlo con un combo solo me funciona perfectamente, pero cuando intento filtrar utilizando dos combos me da el siguiente error:

"REFERENCIA A OBJETO NO ESTABLECIDA COMO INSTANCIA DE UN OBJETO"

Este es el codigo del filtro:

VISTA.RowFilter = "ID_CAMPO1 = '" & ComboBox1.SelectedValue.ToString & "'And ID_CAMPO2 = '" & ComboBox2.SelectedValue.ToString & "'"

Me gustaria que evaluaseis este codigo a ver si me podeis ayudar a ver el fallo. Gracias.
Responder Con Cita
  #2 (permalink)  
Antiguo 22-03-2008, 23:34:06
Avatar de J.M.Movilla
Administrator
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 5.167
J.M.Movilla Valoración +2
Predeterminado

Yo estoy verde en VB.NET pero me imagino que el problema se te presente porque uno de los combos no tiene seleccionado ningún elemento.

Yo evaluaría el que tanto ComboBox1 como ComboBox2 contengan un valor de entre sus respectivos elementos, y sólo si se cumple esta doble condición definiría el VISTA.RowFilter.
__________________
José María Movilla Cuadrado
______________________

Visual Basic Videos Programacion Foro Programacion
Tutoriales Programacion Trucos Programacion Codigos Programacion
Responder Con Cita
  #3 (permalink)  
Antiguo 23-03-2008, 06:58:48
Moderador
 
Registrado: dic 2002
Ubicación: Madrid
Posts: 4.183
acalanto ha deshabilitado la reputación
Predeterminado

Yo tampoco estoy muy metido en .NET, pero me parece que entre el valor que te devuelve el Combo1 y el concatenante AND de la sentencia no pones ningún espacio de separación, por lo que cadena de filtro quedará como:


ID_CAMPO1 = '[VALOR_DEL_COMBO1]'And ID_CAMPO2 = '[VALOR_DEL_COMBO2]'

y la forma correcta debería ser:

ID_CAMPO1 = '[VALOR_DEL_COMBO1]' And ID_CAMPO2 = '[VALOR_DEL_COMBO2]'
__________________
Un cordial saludo
-Acalanto-

Madrid - España

Visual Basic
Videos Programacion
Foro Programacion
Tutoriales Programacion
Responder Con Cita
  #4 (permalink)  
Antiguo 23-03-2008, 08:36:20
Buena Participación en el Foro
 
Registrado: mar 2008
Posts: 43
Tholl Valoración +2
Predeterminado

Vereis, en el evento load del form1 se produce la llamada a 2 procedimientos los cuales cargan los combos con sus respectivos datos de la siguiente manera:

Private Sub cargar_combo()
Dim dscombo As New DataSet
Dim da As New OleDbDataAdapter("select * from Tabla", con)
da.Fill(dscombo)
With (ComboBox1)
.DataSource = dscombo
.DisplayMember = ("tabla.campo_descripcion")
.ValueMember = ("tabla.campo_codigo")
End With
ComboBox1.Text = ""
End sub
Lo mismo para el combobox2. Los 2 combos cuando se carga el formulario estan inicializados a "" (con lo que dudo que sea porque no tiene seleccionado ningun valor) y a medida que vamos seleccionando valores va filtrando la grilla, o por lo menos es lo que deberia hacer. Los combos los carga perfectamente, es a la hora de realizar el filtrado que me da ese error. He probado lo que me dijiste acalanto, pero todo igual.
Responder Con Cita
  #5 (permalink)  
Antiguo 24-03-2008, 02:02:22
Buena Participación en el Foro
 
Registrado: ene 2007
Posts: 52
lopezbaires Valoración +2
Predeterminado

El problema es que unos de los comboBoxs tiene el SelectedValue = Nothing, trata de hacerlo asi:

If Not( isnothing(ComboBox1.SelectedValue) OR isnothing(ComboBox2.SelectedValue.ToString)) Then
VISTA.RowFilter = "ID_CAMPO1 = '" & ComboBox1.SelectedValue.ToString & "'And ID_CAMPO2 = '" & ComboBox2.SelectedValue.ToString & "'"
End If

cualquier duda dejala en el foro
Responder Con Cita
  #6 (permalink)  
Antiguo 01-04-2008, 07:47:26
Buena Participación en el Foro
 
Registrado: mar 2008
Posts: 43
Tholl Valoración +2
Predeterminado Re: Filtrar Datagridview con 2 combobox

Veras, esque tambien cabe la posibilidad de que filtre solo por un combobox y no por los dos, depende de si uno tiene valor y el otro no
Responder Con Cita
  #7 (permalink)  
Antiguo 03-04-2008, 20:14:08
Un Nuevo Amigo
 
Registrado: nov 2006
Posts: 1
afdore Valoración +2
Smile Re: Filtrar Datagridview con 2 combobox

Mira soy nuevo en el foro, pero creo que lo que puedes hacer es crear una variable de tipo string que contenga la sentencia de busqueda, por ejemplo:

Dim filtro as String = ""

If Not( isnothing(ComboBox1.SelectedValue) then
filtro = "ID_CAMPO1 = '" & ComboBox1.SelectedValue.ToString & "'"
End if

If Not( isnothing(ComboBox2.SelectedValue) then
if filtro.length>0 then filtro += " AND "
filtro += "ID_CAMPO2 = '" & ComboBox2.SelectedValue.ToString & "'"
end if

VISTA.RowFilter = filtro

Espero te sirva de algo mi ayuda.
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


Temas Similares
Tema Autor Foro Respuestas Último Mensaje
filtrar datos en un DATAGRIDVIEW fenec Visual Basic.NET 2003 & 2005 2 30-01-2008 18:48:21
Ayuda con los ComboBox en datagridView Juan Carlos Cabezas C/C++ 0 15-01-2008 00:17:57
Ayuda con ComboBox en DataGridView Juan Carlos Cabezas Visual Basic.NET 2003 & 2005 0 06-12-2007 07:38:59
combobox en un datagridview Fany Visual Basic.NET 2003 & 2005 0 19-06-2007 13:48:20
ComboBox en DataGridview Roberto_LENA Visual Basic.NET 2003 & 2005 4 17-11-2006 09:32:38


La franja horaria es GMT. Ahora son las 01:15:42.

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