
16/03/2009, 15:16
|
 | | | Fecha de Ingreso: junio-2007 Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 17 años, 9 meses Puntos: 49 | |
Consulta Multiple Utilizando ComboBox Buenas tardes compañeros mi inquietud es la siguiente tengo 5 ComboBox que los llenos con unos datos de mi BD, la cues tion es que el usuario puede hacer consultas con cualquiera de los datos de los 5 combobox, los ComboBox estan en un Tabcontrol. lo que estoy tratando de plantear para realizar la consulta multiple sea por uno o por los cinco criterios(ComboBox) es la siguiente:
Código:
Dim cControl As Control, cCriterio As String = ""
For Each cControl In Me.Controls
If (TypeOf cControl Is System.Windows.Forms.ComboBox) Then
If cControl.Tag = "codigo_linea" Or cControl.Tag = "sector" Or cControl.Tag = "codigo_planta" Or cControl.Tag = "codigo_filtra" Or cControl.Tag = "codigo_tipo" Then
cCriterio = cCriterio + cControl.Tag + " = " + CType(cControl, System.Windows.Forms.ComboBox).SelectedValue + " AND "
End If
End If
Next
cCriterio = Mid(cCriterio, 1, cCriterio.Length - 4)
MessageBox.Show(cCriterio)
If ConsultaOP("rs.unidad,rs.equivalente,rs.codigo_comodidad,rs.cliente,rs.pais,rs.codigo_linea,rs.sector,rs.codigo_planta,rs.codigo_filtra,rs.codigo_tipo,SUBSTRING(rs.codigo_comodidad,7,1) AS Comodin, SUBSTRING(rs.codigo_comodidad,8,3) AS Consecutivo,rd.valor1 AS DIAMETRO, rd.valor3 AS ALTURA, rd.valor2 AS ROSCA, CASE WHEN rd.valor6 = 1 THEN 'SI' ELSE 'NO' END AS TUERCA, CASE WHEN rd.valor7 = 1 THEN 'SI' ELSE 'NO' END AS DRAING, CASE WHEN valor9 = 1 THEN 'SI' ELSE 'NO' END AS VALVULA_ANTIDRENAJE, CASE WHEN valor8 = 1 THEN '8 a 11' WHEN valor8 = 2 THEN '17 a 19' WHEN valor8 = 3 THEN '20' WHEN rd.valor8 = 4 THEN '30' END AS VALVULA_ALIVIO, CASE WHEN rd.valor11 = 1 THEN 'SI' ELSE 'NO' END AS SELLO_CENTRAL", "PM_Refe_Spects AS rs INNER JOIN PM_Refe_Details AS rd ON rs.unidad = rd.Unidad", cCriterio, Registro, "Unidad") Then
Me.rbmultiple.DataSource = Sdatatable
End If
De esta manera armo mi criterio de consulta y lo paso a mi función ConsultaOP y posteriormente mandar los resultados a un DataGridView , pero tengo dos incovenientes al estar los combox dentro de un TabControl no los esta reconociendo, coloque un ComboBox por fuera del Tabcontrol y si lo reconoce o acepta su parametro en este caso en la propiedad Tag de cada ComBoBox le pongo el nombre del campo de mi tabla conforme quiero que se vaya armando la consulta, el segundo problema es que mi consulta la debo hacer con el datos que me da CType(cControl, System.Windows.Forms.ComboBox).SelectedValue, es decir en mi combo se visualiza una opción Flujo Completo -> Cuyo Valor es 2, por el cual deseo que se vaya armando la consulta, pero me arroja un error que dice que no se puede convertir del tipo Stirng a Tipo Double, lo plantee de esta manera ya que lei que la variable cControl es del tipo Control la cual no tiene la propiedad SelectedValue, lo que se haría sería convertir el tipo de la Variable, pero aún así me arroja el error.
Porque no reconoce los controles que se encuentran en un TabControl??? como sería la forma de recorrer estos controles????.
Agradesco sus respuestas al respecto.
Saludos y Gracias.
__________________ "SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'" |