Ver Mensaje Individual
  #7 (permalink)  
Antiguo 31/07/2008, 09:44
Avatar de AlZuwaga
AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Respuesta: Busqueda con diferentes variables

Cita:
Iniciado por u_goldman
AH pues lo mas sencillo es cotrolarlo todo en cada if

Cita:
Iniciado por JuanRAPerez
Código:
luego cortas el ultimo and 
SLQAnexo = mid(SLQAnexo,1,len(SLQAnexo) - 4)


La otra vez me topé con un problema similar y lo más sencillo que encontré fue meter los parámetros fijos al comienzo. Luego, el resto son puros IF's. La sentencia SQL que usé, a manera de ejemplo:


Código:
SQL = "SELECT Ministerios.*, Programas.* FROM Ministerios INNER JOIN Programas ON Ministerios.ID_MINISTERIO = Programas.ID_MINISTERIO WHERE Programas.Vigente = -1 "

If id_ministerio <> "0" then
	SQL = SQL & " AND Ministerios.Id_Ministerio = " & id_ministerio
End if

If str_PROG <> "" then
	SQL = SQL & " AND (Ministerios.MINISTERIO Like '%" & str_PROG & "%' OR Programas.ORGANISMO Like '%" & str_PROG & "%' OR Programas.Programa Like '%" & str_PROG & "%' OR Programas.Objetivos Like '%" & str_PROG & "%' OR Programas.Bienes_Servicios Like '%" & str_PROG & "%')"
End if

If id_palabraclave <> "0" then
	SQL = SQL & " AND Programas.ID_PN IN(SELECT programas_palabrasclaves.ID_PN FROM programas_palabrasclaves WHERE programas_palabrasclaves.id_palabraclave=" & id_palabraclave & ")"
End if

SQL = SQL & " ORDER BY Ministerios.Jerarquia, Organismo"

¿Que no tenés parámetros fijos para usar al comienzo? Pues sí los tenés!!!:

Código:
SQL = "SELECT * FROM tu_tabla WHERE 1 = 1 "

if...
	SQL = SQL & " AND otro campo = " & una_variable
end if

(de hecho, yo me había olvidado que debía mostrar sólo los registros donde el campo Programas.Vigente fuera TRUE, así que le coloqué el WHERE 1=1. Luego lo quité porque incorporé WHERE Programas.Vigente = -1)

__________________
...___...