Visual Basic.NET - Varios parametros de consulta

 
Vista:

Varios parametros de consulta

Publicado por haver (196 intervenciones) el 24/07/2007 01:11:36
Amigos soy novato en esto de visual basice .net y en si en lo de la programacion.
Queria hacerles una pregunta:
estoy creando unos reportes en basic .net 2005 y cristal reporte pero quiero que se puedan hacer varios filtros...ejemplo

filtro de fechas = mayor, menor, igual que alguna fecha
por centro = igual o mayor que el centro ( aqui tambien entrarian las fechas )
por material = igual al material ( aqui entran las fechas y los centros )

tengo que condicionar cada select ??

if isdate(fecha1.text) and notisdate(fecha2.text) and centro = nothing
sentencia sql
end if

o que puedo hacer???
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Varios parametros de consulta

Publicado por OliBeer (391 intervenciones) el 24/07/2007 16:00:00
Los filtros generalmente se hacen en la consulta SQL. Deberias de poner un poco más de información para poderte ayudar mejor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Varios parametros de consulta

Publicado por haver (196 intervenciones) el 24/07/2007 17:09:03
Ok ...mas sencillo
tengo dos campos de fechas y tres campos para datos

resulta que la consulta a la consulta se vera afectada por cada uno de estos campos:
ejemplo:
'si la fecha 1 es fecha y la fecha2 no lo es, la consulta devolvera los registros mayores a la fecha inicial

if isdate(fecha1) and not isdate(fecha2) then
dim dt as new sqlclient.sqldatadapter("select * from movimientos where fecha >= "& fecha1 &"",conexion)
end if

'si la fecha 1 no es fecha y la fecha2 si es fecha, la consulta devolvera los registros menores a la fecha inicial

if not isdate(fecha1) and isdate(fecha2) then
dim dt as new sqlclient.sqldatadapter("select * from movimientos where fecha <= "& fecha2 &"",conexion)
end if

y asi sucesivamente de acuerdo a la cantidad de combinaciones que puede hacer el usuario en el form....antes de mostrar los valores ya filtrados

tengo que hacer un if por cada combinacion de datos en el form??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Varios parametros de consulta

Publicado por OliBeer (391 intervenciones) el 24/07/2007 17:22:14
Me temo que sí, porque necesitaras esos if para poder hacer los filtrados por medio de las consultas SQL, a menos que tus campos de fechas y datos sean fijos, porque a lo que veo preguntas si es fecha o no, osea que si lo puede ser o no, si fueran fijos, solo lo filtrarias desde SQL.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Varios parametros de consulta

Publicado por haver (196 intervenciones) el 25/07/2007 01:19:34
Lo resolvi gracias por tu ayuda
dim str(5) as object

If IsDate(My.Forms.frmparametroskardex.fechaini.Text) Then
str(0) = " fecha >= " & My.Forms.frmparametroskardex.fechafinal.Text & ""
End If

If IsDate(My.Forms.frmparametroskardex.fechafinal.Text) Then
str(1) = " fecha <= " & My.Forms.frmparametroskardex.fechafinal.Text & ""
End If

If My.Forms.frmparametroskardex.cmb_bodega.Text <> Nothing Then
str(2) = " centro = " & My.Forms.frmparametroskardex.cmb_bodega.Text & ""
End If

If My.Forms.frmparametroskardex.lbclasificacion.Text <> Nothing Then
str(3) = " grp_material = " & My.Forms.frmparametroskardex.lbclasificacion.Text & " and subgrp_material = " & My.Forms.frmparametroskardex.lb_sub.Text & " AND materialno = " & My.Forms.frmparametroskardex.lb_mat.Text & ""
End If

If My.Forms.frmparametroskardex.cmb_centros.Text <> Nothing Then
str(4) = " centro = " & My.Forms.frmparametroskardex.cmb_centros.Text & ""
End If

If My.Forms.frmparametroskardex.cmb_bodega.Text <> Nothing Then
str(5) = " bodega = " & My.Forms.frmparametroskardex.cmb_bodega.Text & ""
End If

MsgBox(str(0))

Dim query As String
Dim i As Integer
For i = 0 To 5
If str(i) <> "" Then
If i > 0 Then
query = query & " AND " & str(i)
Else
query = query & str(i)
End If
End If
Next
MsgBox(query)

dt = New SqlClient.SqlCommand("INSERT INTO temp_movimientos(tipo,empresa,bodega,fecha,grp_material,sub_material,material,tipo_unidad,unidad,cantidad,valor,documento) SELECT entradas.ajuste,entradas.empresa,entradas.bodega,entradas.fecha,entradas.grp_material,entradas.subgrp_material, entradas.materialno,entradas.tipo_unidad,entradas.unidad,cantidad,entradas.valor,entradas.documento FROM entradas Where " & query & "", conexion)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar