Hola, tengo un problema al crear un filtro. Utilizo 6 campos para ello: 2 utilizan la calusula Like y los otros cuatro utilizan el operador "=". Como hago para construir un filtro utilizando estos criterios con la propiedad Filter de Recordset ADO o una instrucción SQL.
1 respuesta
Respuesta de telemaco
1
1
telemaco, He trabajado 5 años desarrollando aplicaciones tanto en access...
Seria de este modo... SI SE TIENEN QUE CUMPLIR TODAS LAS CONDICIONES el operador lógico seria AND si ccon cualquiera entonces el operador seria OR, pero puede combinar unas con otras. Ejemplo: ************************* ...WHERE (CAMPO1 LIKE '*" & TEXTO1 & "*') AND (CAMPO2 = " & TEXTO2 & ") AND (CAMPO3 = '" & TEXTO3 & "') AND (CAMPO4 = #" & Format(TEXTO4,"MM/dd/yyyy") & "#) AND (CAMPO5 = " & TEXTO5 & ") AND (CAMPO6 LIKE '*" & TEXTO6 & "*') ************************** OJO: Combine diferentes tipos de campos, ya que la sintaxis varia si es numérico, texto o fecha... en los casos donde va LIKE se coloca el asterisco(*) sin importar si es numérico... En los casos que sea el campo Numérico (Según el ejemplo CAMPO2 Y CAMPO5) la sintaxis es: ...=" & TEXTO2 & " En los casos que sea tipo texto (CAMPO3): ...='" & TEXTO3 & "' En los casos que sea tipo Fecha (CAMPO4) en este caso se debe formatear la fecha para que quede MM/dd/yyyy. OKO con esto, ya que normalmente access trabaja dd/MM/yyyy: ....#" & Format(TEXTO4,"MM/dd/yyyy") & "#) Ojo la sintaxis es estricta, hasta con los espacios... Att:telemaco
Cual seria la sintaxis en el WHERE de la instrucción SQL para construirla, por ejemplo: 6 campos El primero es con Like El segundo, el tercero, cuarto y quinto con "=" y el ultimo con like. Espero tu ayuda, gracias.
Ese es el problema de ADO el filter solo admite UN CRITERIO... aquí debes alimentarlo con una consulta SQL.. Att:telemaco