Foros del Web » Programando para Internet » ASP Clásico »

Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>)

Estas en el tema de Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>) en el foro de ASP Clásico en Foros del Web. Un saludo: Resulta que tengo unas lineas que construyen una consulta en función de los campos que vienen de un formulario. La consulta funciona perfectamente ...

  #1 (permalink)  
Antiguo 03/07/2007, 06:26
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años
Puntos: 0
Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>)

Un saludo:
Resulta que tengo unas lineas que construyen una consulta en función de los campos que vienen de un formulario.
La consulta funciona perfectamente salvo cuando pongo como parte del filtro una condición que incluye que la fecha de inicio es mayor que .... utilizando el caracter ">" (mayor que).

Cuando visualizo el filtro aparantemente construye bien la sentencia SQL pero luego me devuelve el siguiente error:

--------------------------------
El filtro vale: referenciaasesoria=34 and fechainicioprorroga>=#15/12/2001#
ADODB.Recordset error '800a0cc1'
No se encontró el elemento en la colección que corresponde con el nombre o el ordinal pedido.
/gestion_web/extranet/prorrogas/modificar_ver/modificar_ver_prorrogas_result.asp, line 128
--------------------------------

Supongo entonces que toma el caracter ">" (mayor que) por un nombre de campo.


El código es:
Código:
if insertar=true then
        Poner_AND= False
        Filtro= ""
    
        FOR EACH Parametro IN Request.Form
            IF Request.Form (Parametro) <> "" then 
                IF Poner_AND THEN
                    Select Case Parametro
                    Case "fechainicioprorroga"
                    'response.write "1 <br>" 
                        Filtro= Filtro & " AND " & Parametro & ">=#"
                        Filtro= Filtro & Request.Form (Parametro) & "#"
                        
                    Case "fechafinprorroga"
                        Filtro= Filtro & " AND " & Parametro & "<=#"
                        Filtro= Filtro & Request.Form (Parametro) & "#"
                        
                    Case Else
                        'Filtro= Filtro & " AND " & Parametro & "='"
                        'Filtro= Filtro & Request.Form (Parametro) & "'"
                        Filtro= Filtro & " AND " & Parametro & "="
                        Filtro= Filtro & Request.Form (Parametro)
                    End Select
                    
                ELSE
                    'Filtro= Filtro & Parametro & "='"
                    Filtro= Filtro & Parametro & "="
                    'Filtro= Filtro & Request.Form (Parametro) & "'"
                    Filtro= Filtro & Request.Form (Parametro) & ""
                    Poner_AND = True

                END IF
            END IF 
        NEXT

    Filtro= LCase (Filtro)
    RsProrrogas.Filter = Filtro
    response.write "El filtro vale: " & filtro & "<br>"
    RsProrrogas.open "select * from prorrogas where " & filtro & " order by referenciaalumno"
Alguien puede ayudarme?. Me está volviendo loco.

Gracias a todos
__________________

Espero haber aprendido algo de tí.
A mi padre.
  #2 (permalink)  
Antiguo 03/07/2007, 09:07
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Re: Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>)

No creo

La linea 128 es esta: referenciaasesoria=34 and fechainicioprorroga>=#15/12/2001# ?

existen efectivamente los campos referenciaasesoria y fechainicioprorroga así como están escritos?
  #3 (permalink)  
Antiguo 03/07/2007, 09:25
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años
Puntos: 0
Re: Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>)

La línea 128 es esta:

RsProrrogas.open "select * from prorrogas where " & filtro & " order by referenciaalumno"

Existen todos los campos que comentas y se llaman exactamente así, por eso no veo donde está el problema.
Es más esto es lo que me devuelve cuando cubro todos los campos:

referenciaempresa, 21 Verdadero
referenciaasesoria, 34 Verdadero
fechainicioprorroga, 15/01/2005 Verdadero
fechafinprorroga, 15/12/2010 Verdadero
El filtro vale: referenciaempresa=21 and referenciaasesoria=34 and fechainicioprorroga>=#15/01/2005# and fechafinprorroga<=#15/12/2010#

Por si acaso los campos referenciaempresa,referenciaasesoria son de tipo numerico y los campos fechainicioprorroga y fechafinprorroga son de tipo fecha

Gracias
__________________

Espero haber aprendido algo de tí.
A mi padre.

Última edición por ciberpata; 03/07/2007 a las 09:40
  #4 (permalink)  
Antiguo 03/07/2007, 11:18
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>)

Código:
if insertar=true then
        Poner_AND= False
        Filtro= ""
    
        FOR EACH Parametro IN Request.Form
            IF Request.Form (Parametro) <> "" then 
                IF Poner_AND THEN
                    Select Case Parametro
                    Case "fechainicioprorroga"
                    'response.write "1 <br>" 
                        Filtro= Filtro & " AND " & Parametro & " >= #"
                        Filtro= Filtro & Request.Form (Parametro) & "#"
                        
                    Case "fechafinprorroga"
                        Filtro= Filtro & " AND " & Parametro & " <= #"
                        Filtro= Filtro & Request.Form (Parametro) & "#"
                        
                    Case Else
                        'Filtro= Filtro & " AND " & Parametro & " ='"
                        'Filtro= Filtro & Request.Form (Parametro) & "'"
                        Filtro= Filtro & " AND " & Parametro & "="
                        Filtro= Filtro & Request.Form (Parametro)
                    End Select
                    
                ELSE
                    'Filtro= Filtro & Parametro & "='"
                    Filtro= Filtro & Parametro & "="
                    'Filtro= Filtro & Request.Form (Parametro) & "'"
                    Filtro= Filtro & Request.Form (Parametro) & ""
                    Poner_AND = True

                END IF
            END IF 
        NEXT

    Filtro= LCase (Filtro)
    RsProrrogas.Filter = Filtro
    response.write "El filtro vale: " & filtro & "<br>"
    RsProrrogas.open "select * from prorrogas where " & filtro
Bueno...no creo que sea el problema, pero comienza por agregar unos espacios y nos dices como funciona....hace un rato que no toco Access, pero que no la fecha se pasa con '#fecha#'? es decir apostrofe seguido de almohadilla? Tal vez estoy alucinando


Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #5 (permalink)  
Antiguo 03/07/2007, 11:45
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Re: Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>)

La verdad no recuerdo si la fecha va entre apóstrofes, pero creo que no.

Igual veamos si el problema es efectivamente ese mayor que. Cambia a esto el filtro y nos dices :

referenciaempresa=21 and referenciaasesoria=34 and fechainicioprorroga Between #15/01/2005# and #15/12/2010#

Igual la verdad no recuerdo lo que comenta UG y tampoco tengo Access a la mano, será cosa de que hagas pruebas.

Saludos
  #6 (permalink)  
Antiguo 03/07/2007, 12:50
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>)

solo como anexo, si busco fechas en ACCESS, necesitas los #
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #7 (permalink)  
Antiguo 03/07/2007, 12:50
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años
Puntos: 0
Re: Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>)

He pasado esto:
select * from prorrogas where referenciaasesoria=34 and fechainicioprorroga between #1/15/2001# and #12/15/2010#
pero me da error de sintaxis y no veo donde puede estar. Pienso que la sentencia está bien.
__________________

Espero haber aprendido algo de tí.
A mi padre.
  #8 (permalink)  
Antiguo 03/07/2007, 12:53
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>)

select * from prorrogas where referenciaasesoria=34 and (fechainicioprorroga between #1/15/2001# and #12/15/2010#)

imagino que a de ser por que te faltan los parentesis
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #9 (permalink)  
Antiguo 03/07/2007, 13:12
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>)

Cita:
Iniciado por ciberpata Ver Mensaje
He pasado esto:
select * from prorrogas where referenciaasesoria=34 and fechainicioprorroga between #1/15/2001# and #12/15/2010#
pero me da error de sintaxis y no veo donde puede estar. Pienso que la sentencia está bien.
También pudiera ser que la fecha esté siendo manejada de manera distinta, es decir en formato dd/mm/aaaa y no mm/dd/aaaa, verifica esto.

Salud
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #10 (permalink)  
Antiguo 04/07/2007, 04:22
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años
Puntos: 0
Re: Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>)

Hola a todos:
Pues sigue sin funcionar:
He probado a meter un codigo lcid, para asegurarme del tema del manejo de las fechas.
Por otro lado en la consulta between me devuelve esto:
Error de sintaxis (falta operador) en la expresión de consulta 'referenciaasesoria=34 (and fechainicioprorroga between #15/01/2001# and #15/01/2010#)
Como observares la consula está aparentemente bien (creo yo).
__________________

Espero haber aprendido algo de tí.
A mi padre.
  #11 (permalink)  
Antiguo 04/07/2007, 09:20
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>)

Hola de nuevo ciberpata, ese error indica que te falta algun signo requerido por el motor, podría ser que el campo referenciaasesoria fuera de texto y no numérico? en cuyo caso necesitarías pasarlo entre apóstrofes, realmente ayudaría si pusieras la sentencia completa y la estructura de tu(s) tabla(s) de otra manera estamos adivinando.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #12 (permalink)  
Antiguo 04/07/2007, 09:41
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Re: Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>)

Y otra, debes probar la sentencia en el propio Access antes de hacerlo en ASP
  #13 (permalink)  
Antiguo 04/07/2007, 11:58
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años
Puntos: 0
Re: Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>)

Ya he probado la sentencia en access, de hecho he adaptado la sentencia de access con los nombres de los campos que recoge.
De todas formas voy a subir la estructura de las tablas y el código de las dos páginas para ver si aparece el error.
Gracias
__________________

Espero haber aprendido algo de tí.
A mi padre.
  #14 (permalink)  
Antiguo 05/07/2007, 03:21
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años
Puntos: 0
Re: Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>)

El codigo va en dos post pq no cabe en uno solo.

Envio el código de los ficheros para ver si así son ustedes capaces de decirme algo, porque yo ya no se que más buscar, me lo veo crudo (mi coco no da para más)
He probado lo que me han dicho anteriormente sin conseguir nada.

Son dos ficheros el primero: modificar_ver_prorrogas.asp envia los datos al segundo: modificar_ver_prorrogas_result.asp.
Es en el segundo fichero donde me da el problema, marcaré el lugar en rojo.
El error que devuelve es:

El asunto es que toma el simbolo de mayor que por un nombre de campo.

La base de datos es access:
Campos:
referenciaprorroga: autonumerico
referenciaasesoria: Numero (entero largo)
referenciaalumno: Numero (entero largo)
referenciacontrato: Numero (entero largo)
referenciaempresa: Numero (entero largo)
numeroprorroga: Texto (1)
duracionprorroga: Texto (8)
fechainicioprorroga: Fecha/ hora
fechafinprorroga: Fecha/hora
tiempoacumulado: texto (40)
fecharegistro: Fecha/hora
numeroregistro: Texto(7)
No se encontró el elemento en la colección que corresponde con el nombre o el ordinal pedido. Error en la linea 128.

Codigo modificar_ver_prorrogas.asp
------------
Código:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
response.Expires=0
Response.AddHeader "PRAGMA", "NO-CACHE" 
if session("autorizacion")=-1 or session("autorizacion")="" then 
    response.redirect "/login.asp"
end if
%>

<HTML>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Modificar/Ver Prorroga Contrato</title>
<link href="../../../../css/estilos_extranet.css" rel="stylesheet" type="text/css">
</head>

<!--#include file="../../../../adovbs.asp" -->
<!--#include file="../../../../menus_cabeceratablas.asp" -->

<%
Set Conn= Server.CreateObject("ADODB.Connection")
Set Command= Server.CreateObject("ADODB.Command")
Conn.open "DSN=coesco.com"
Command.ActiveConnection=Conn 
Command.CommandType=adCmdText 
Command.CommandText= "SELECT * FROM empresas WHERE referenciaasesoria = " & Request.QueryString("clave")
Set RsEmpresas=Command.Execute () 
%>
 <body>
 <%if session("autorizacion")=3 then%> 
 <form action="modificar_ver_prorrogas_result.asp?clave=<%=Request.QueryString("clave")%>" method="post" name="form1">
  <%CabeceraTablaModificarProrrogas%>
    <table class="gestion" align="center">
    <tr>
      <td colspan="2" class="mensajesrellenar">&nbsp;</td>
    </tr>
    <tr>
      <td colspan="2" class="mensajesrellenar">Introduzca un valor sobre el criterio de b&uacute;squeda a seleccionar</td>
    </tr>
    <tr>
      <td colspan="2" class="mensajesrellenar">&nbsp;</td>
    </tr>
    <!--<tr>
      <td width="16%" class="celda">Referencia</td>
      <td width="84%" class="celda"><input name="referenciaprorroga" type="text" class="cajadetexto" id="referenciaprorroga" size="14" maxlength="14"></td>
      </tr> -->
    <tr>
      <td width="187" class="celda">Empresa </td>
      <td width="569" class="celda"><select name="referenciaempresa" class="SELECT" id="referenciaempresa">
        <option value="""" selected>Seleccionar Empresa</option>
        <%RsEmpresas.movefirst
        do while not RsEmpresas.eof%>
        <option value="<%=RsEmpresas("referenciaempresa")%>"><%=RsEmpresas("razonsocial")%></option>
        <%RsEmpresas.movenext
        loop%>
      </select></td>
    </tr>
    <tr>
      <td class="celda">Desde Fecha Inicio Prorroga </td>
      <td class="celda"><input name="fechainicioprorroga" type="text" class="cajadetexto" id="fechainicioprorroga" size="10" maxlength="10"></td>
    </tr>
    <tr>
      <td class="celda">Hasta Fecha Fin Prorroga </td>
      <td class="celda"><input name="fechafinprorroga" type="text" class="cajadetexto" id="fechafinprorroga" size="10" maxlength="10"></td>
    </tr>
    

    <tr>
      <td  colspan="2" class="celda">&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><input type="submit" class="BOTONES_FORMULARIO" value="Ver Prorrogas">
      <input type="reset" class="BOTONES_FORMULARIO" value="Limpiar Formulario">
      <input name="referenciaasesoria" type="hidden" id="referenciaasesoria" value="<%=request.QueryString("clave")%>"></td>
      </tr>
    <tr>
      <td colspan="2" class="gestion">&nbsp;</td>
      </tr>
  </table>
</form>
<%end if
RsEmpresas.close
Conn.close
Set RsEmpresas=nothing
Set Conn=nothing%>
</BODY>
</HTML>
__________________

Espero haber aprendido algo de tí.
A mi padre.
  #15 (permalink)  
Antiguo 05/07/2007, 03:23
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años
Puntos: 0
Re: Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>)

Parte 2:

Código modificar_ver_prorrogas_result.asp
-----------------
Código:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

<%
Session.LCID = 1034
response.Expires=0
Response.AddHeader "PRAGMA", "NO-CACHE" 
if session("autorizacion")=-1 or session("autorizacion")="" then 
    response.redirect "/login.asp"
end if
%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Modificar/Ver Prorrogas</title>
<SCRIPT LANGUAGE="JavaScript">
<!--
function AbrirVentana (theURL, winName, features)
{
window.open (theURL, winName, features);
return false
}
-->
</SCRIPT>

<link href="../../../../css/estilos_extranet.css" rel="stylesheet" type="text/css">
</head>

<!--#include file="../../../../adovbs.asp" -->
<!--#include file="../../../../menus_cabeceratablas.asp" -->

<%
'Recogemos los valores pasados del formulario anterior
fechainicioprorroga= Trim(Request.form("fechainicioprorroga"))
fechafinprorroga=  Trim(Request.form("fechafinprorroga"))

Set Conn= Server.CreateObject("ADODB.Connection")
Conn.ConnectionString = "DSN=coesco.com"
Conn.open
Set RsProrrogas=Server.CreateObject("ADODB.Recordset")
RsProrrogas.activeconnection=Conn 
RsProrrogas.source="prorrogas"
RsProrrogas.Locktype = adLockOptimistic
RsProrrogas.CursorType = adOpenDinamic

insertar=True

CabeceraTablaVerModificarProrrogas
%>
<table class="gestion" align="center">

<%
'Validamos los datos recibidos del formulario
if fechainicioprorroga <> "" then
    If NOT IsDate(fechainicioprorroga) then
        response.write("<tr><td class=""validacionerrores"">"  & "<em>""Fecha Inicio Prorroga: ""</em>Indicar la ""Fecha de Inicio de la Prorroga""</em></td></tr>")
        insertar=False
    else 
        if year(cdate(fechainicioprorroga)) < 1900 then
            response.write("<tr><td class=""validacionerrores"">"  & "No se aceptan fechas inferiores al año 1900</td></tr>")
            insertar=false
        end if
    end if
end if

if fechafinprorroga <> "" then
    If NOT IsDate(fechafinprorroga) then
        response.write("<tr><td class=""validacionerrores"">"  & "<em>""Fecha Fin Prorroga: ""</em>Indicar la ""Fecha de finalización de la Prorroga""</em></td></tr>")
        insertar=False
    else 
        if year(cdate(fechafinprorroga)) < 1900 or fechafinprorroga < fechainicioprorroga then
            response.write("<tr><td class=""validacionerrores"">"  & "No se aceptan fechas inferiores al año 1900 o la Fecha de Finalización de la Prorroga es menor que la Fecha de Inicio.</td></tr>")
            insertar=false
        end if
    end if
end if

if insertar=False then
    pulsarcompletardatos
end if
%>
</table>
<%
'Si insertar=true entonces significa que no hay errores de validación y puede pasar la cadena de consulta
if insertar=true then
        Poner_AND= False
        Filtro=""
        
        FOR EACH Parametro IN Request.Form
            IF Request.Form (Parametro) <> "" then 
                IF Poner_AND THEN
                'El Case sirve para indicar que queremos que nos liste los registros que se encuentran entre la fecha de inicio y la de fin de prorroga (ambas incluidas)
                    Select Case Parametro
                    Case "fechainicioprorroga"
                        Filtro= Filtro & " AND " & Parametro & ">=#"
                        Filtro= Filtro & Request.Form (Parametro) & "#"
                        
                    Case "fechafinprorroga"
                        Filtro= Filtro & " AND " & Parametro & "<=#"
                        Filtro= Filtro & Request.Form (Parametro) & "#"
                        
                    Case Else
                        Filtro= Filtro & " AND " & Parametro & "="
                        Filtro= Filtro & Request.Form (Parametro)
                    End Select
                    
                ELSE
                    Filtro= Filtro & Parametro & "="
                    Filtro= Filtro & Request.Form (Parametro) & ""
                    Poner_AND = True
                END IF
            END IF 
        NEXT

    Filtro= LCase (Filtro)
    RsProrrogas.Filter = Filtro
    RsProrrogas.open "select * from prorrogas where " & filtro & " order by referenciaalumno"

    'RsProrrogas.open "filtro"
    %>
    <body>

    <%IF RsProrrogas.Eof THEN
        NoSeEncuentranRegistros
    ELSE
        'El resultado de la busqueda se presenta en el siguiente do-loop%>
        <table class="gestion" align="center">
          <tr valign="top">
            <td colspan="17" class="mensajesrellenar">&nbsp;</td>
          </tr>
          <tr valign="top">
            <td colspan="17" class="mensajesrellenar">Se han obtenido los siguientes resultados:</td>
          </tr>
          <tr valign="top">
            <td colspan="17" class="mensajesrellenar">&nbsp;</td>
          </tr>
          <tr valign="top"> 
            <th width="86" class="tablalistadoscabecera">Referencia</th>
            <th width="443" class="tablalistadoscabecera">Alumno</th>
            <th width="443" class="tablalistadoscabecera">Empresa</th>
            <th colspan="14" class="tablalistadoscabecera">Imprimir Docs</th>
          </tr>
            <%
            'Asigno el valor de nombre y apellidos a blanco
            nombreyapellidos="" 
                        
            do until RsProrrogas.eof 
                alumnoactual=""
                
                Set RsAlumnos= conn.Execute("SELECT * FROM alumnos WHERE referenciaalumno = " & RsProrrogas("referenciaalumno"))
                
                
                Set RsContratos= conn.Execute("SELECT * FROM contratos WHERE referenciaasesoria = " & Request.QueryString("clave") & " and referenciaalumno= " & RsAlumnos("referenciaalumno"))


                Set RsProfesion= conn.Execute("SELECT * FROM profesiones WHERE profesion = '" & RsContratos("cla1profesion") & "'")


                Set RsEmpresas= conn.Execute("SELECT * FROM empresas WHERE referenciaasesoria = " & Request.QueryString("clave") & " and referenciaempresa= " & RsProrrogas("referenciaempresa"))
                                        
                
                if colorfila=0 then
                    color="#EEF0F7"
                    colorfila=1
                else
                    color="#FFFFFF"
                    colorfila=0
                end if            
            %>
        
            <tr bgcolor="<%=color%>" onMouseOver="this.style.background='#FAFAD2'" onMouseOut="this.style.background='<%=color%>'"> 
            <td align="left"><a href="actualizar_prorrogas.asp?referenciaprorroga=<%=RsProrrogas("referenciaprorroga")%>&clave=<%=Request.QueryString("clave")%>"><%=RsProrrogas("referenciaprorroga")%></a></td>
            <td align="left"><a href="actualizar_prorrogas.asp?referenciaprorroga=<%=RsProrrogas("referenciaprorroga")%>&clave=<%=Request.QueryString("clave")%>">
              <%Response.write RsAlumnos("nombre") & " " & RsAlumnos("apellidos")%></a></td>
            <td align="left"><a href="actualizar_prorrogas.asp?referenciaprorroga=<%=RsProrrogas("referenciaprorroga")%>&clave=<%=Request.QueryString("clave")%>"><%=RsEmpresas("razonsocial")%></a></td>
            <td width="30"><a href="../../contratos/modificar_ver/acuerdoformacionteorica.asp?referenciacontrato=<%=RsContratos("referenciacontrato")%>&clave=<%=Request.QueryString("clave")%>&botonp=<%Response.write "p" & RsProrrogas("numeroprorroga")%>" target="_blank"><img src="../../../../images/iconos/comunicacionacuerdo.gif" width="30" height="17" border="0" title="Imprimir Comunicación de Acuerdo para Formación Teórica"></a></td>
                    
           <td width="30"><a href="../../../../gestion_web/extranet/programasformacion/<%=RsProfesion("referenciaprofesion")%>.pdf?referenciacontrato=<%=RsContratos("referenciacontrato")%>&clave=<%=Request.QueryString("clave")%>" target="_blank"><img src="../../../../images/iconos/programaformacion.gif" width="30" height="17" border="0" title="Programa de Formación"></a></td>
          </tr>
          
        <%
            RsProrrogas.movenext 
        loop 
        %>
    </table>
        <%
            RsAlumnos.Close
            Set RsAlumnos=nothing
            
            RsContratos.close
            Set RsContratos=nothing
            
            RsEmpresas.close
            Set RsEmpresas=nothing
            
            RsProfesion.close
            Set RsProfesion=nothing
            
            RsProrrogas.Close
            Set RsProrrogas=nothing
            
            Conn.close
            Set Conn=nothing
        END IF
END IF
%>
</body>
</html>
Gracias por todo.
__________________

Espero haber aprendido algo de tí.
A mi padre.
  #16 (permalink)  
Antiguo 05/07/2007, 07:08
Avatar de CésarBalaguer  
Fecha de Ingreso: octubre-2006
Ubicación: en mi casa
Mensajes: 181
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>)

puedes pasar tu query a una variable de cadena, imprimirla con un responsewrite y mandar que es lo que sale?
  #17 (permalink)  
Antiguo 05/07/2007, 07:54
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
De acuerdo Re: Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>)

prueba esta

Código PHP:
'f1 fecha inicial, f2 fecha final
f1=request.querystring ("f1")
f2=request.querystring ("f2")

.... fechainicioprorroga > = datevalue('"& f1 &"') and fechainicioprorroga  < = datevalue('"& f2 &"

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #18 (permalink)  
Antiguo 06/07/2007, 03:50
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años
Puntos: 0
Re: Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>)

Tampoco funciona.

El valor que pasa el filtro es:

El filtro vale: referenciaasesoria=34 and fechainicioprorroga>=#15/12/2001# and fechafinprorroga<=#15/12/2010#
__________________

Espero haber aprendido algo de tí.
A mi padre.
  #19 (permalink)  
Antiguo 06/07/2007, 08:14
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Re: Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>)

fechainicioprorroga > = datevalue('15/12/2001') and fechainicioprorroga < = datevalue('15/12/2010')

proba asi.,
__________________
JuanRa Pérez
San Salvador, El Salvador
  #20 (permalink)  
Antiguo 06/07/2007, 09:54
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años
Puntos: 0
Re: Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>)

Pues tampoco funciona. La verdad es qeu esto es para volverse loco.
Gracias
__________________

Espero haber aprendido algo de tí.
A mi padre.
  #21 (permalink)  
Antiguo 06/07/2007, 10:29
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Re: Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>)

pega toda tu sql

me aprece rraro
__________________
JuanRa Pérez
San Salvador, El Salvador
  #22 (permalink)  
Antiguo 06/07/2007, 10:36
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años
Puntos: 0
Re: Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>)

La sentencia es:
RsProrrogas.open "select * from prorrogas where fechainicioprorroga > = datevalue('15/12/2001') and fechainicioprorroga < = datevalue('15/12/2010')"
__________________

Espero haber aprendido algo de tí.
A mi padre.
  #23 (permalink)  
Antiguo 06/07/2007, 10:54
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>)



original

Cita:
RsProrrogas.open "select * from prorrogas where fechainicioprorroga > = datevalue('15/12/2001') and fechainicioprorroga < = datevalue('15/12/2010')"

modificado
Cita:
RsProrrogas.open "select * from prorrogas where referenciaasesoria=34 and (fechainicioprorroga > = datevalue('15/12/2001') and fechainicioprorroga < = datevalue('15/12/2010'));"
tal cual esta, deberia funcionar, la sentencia.... pero viendo bien tu filtro

Código HTML:
        FOR EACH Parametro IN Request.Form
            IF Request.Form (Parametro) <> "" then 
                IF Poner_AND THEN
                'El Case sirve para indicar que queremos que nos liste los registros que se encuentran entre la fecha de inicio y la de fin de prorroga (ambas incluidas)
                    Select Case Parametro
                    Case "fechainicioprorroga"
                        Filtro= Filtro & " AND " & Parametro & ">=#"
                        Filtro= Filtro & Request.Form (Parametro) & "#"
                        
                    Case "fechafinprorroga"
                        Filtro= Filtro & " AND " & Parametro & "<=#"
                        Filtro= Filtro & Request.Form (Parametro) & "#"
                        
                    Case Else
                        Filtro= Filtro & " AND " & Parametro & "="
                        Filtro= Filtro & Request.Form (Parametro)
                    End Select
                    
                ELSE
                    Filtro= Filtro & Parametro & "="
                    Filtro= Filtro & Request.Form (Parametro) & ""
                    Poner_AND = True
                END IF
            END IF 
        NEXT
he notado que primero pides el parametro y despues lo recojes.... que sentido tiene hacerlo a la inversa?? es matematicas donde "el orden de los factores no altera el producto" o algo asi???

no deberia ser tu filtro de esta manera????
Código HTML:
        FOR EACH Parametro IN Request.Form
            IF Request.Form (Parametro) <> "" then 
                IF Poner_AND THEN
                'El Case sirve para indicar que queremos que nos liste los registros que se encuentran entre la fecha de inicio y la de fin de prorroga (ambas incluidas)
                    Select Case Parametro
                    Case "fechainicioprorroga"
                        Filtro= Filtro & Request.Form (Parametro) & "#"
                        Filtro= Filtro & " AND " & Parametro & ">=#"
                        
                    Case "fechafinprorroga"
                        Filtro= Filtro & Request.Form (Parametro) & "#"
                        Filtro= Filtro & " AND " & Parametro & "<=#"
                        
                    Case Else
                        Filtro= Filtro & Request.Form (Parametro)
                        Filtro= Filtro & " AND " & Parametro & "="
                    End Select
                    
                ELSE
                    Filtro= Filtro & Request.Form (Parametro) & ""
                    Filtro= Filtro & Parametro & "="
                    Poner_AND = True
                END IF
            END IF 
        NEXT

__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #24 (permalink)  
Antiguo 06/07/2007, 10:54
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>)

A ver trata esto:

Código:
select * from prorrogas where fechainicioprorroga BETWEEN #15/12/2001# and #15/12/2010#"
Tambien trata esto:

Código:
select * from prorrogas where fechainicioprorroga BETWEEN #12/15/2001# and #12/15/2010#"

Ya nos diras mas cosas.
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #25 (permalink)  
Antiguo 06/07/2007, 11:23
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años
Puntos: 0
Re: Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>)

Cita:
Iniciado por Shiryu_Libra Ver Mensaje


original

no deberia ser tu filtro de esta manera????
Código HTML:
        FOR EACH Parametro IN Request.Form
            IF Request.Form (Parametro) <> "" then 
                IF Poner_AND THEN
                'El Case sirve para indicar que queremos que nos liste los registros que se encuentran entre la fecha de inicio y la de fin de prorroga (ambas incluidas)
                    Select Case Parametro
                    Case "fechainicioprorroga"
                        Filtro= Filtro & Request.Form (Parametro) & "#"
                        Filtro= Filtro & " AND " & Parametro & ">=#"
                        
                    Case "fechafinprorroga"
                        Filtro= Filtro & Request.Form (Parametro) & "#"
                        Filtro= Filtro & " AND " & Parametro & "<=#"
                        
                    Case Else
                        Filtro= Filtro & Request.Form (Parametro)
                        Filtro= Filtro & " AND " & Parametro & "="
                    End Select
                    
                ELSE
                    Filtro= Filtro & Request.Form (Parametro) & ""
                    Filtro= Filtro & Parametro & "="
                    Poner_AND = True
                END IF
            END IF 
        NEXT
Pues lo he probado a tu manera y me devuelve lo siguiente:

referenciaasesoria=3415/12/2001# and fechainicioprorroga>=#

con lo cual se demuestra que no es como tu dices puesto que construye mal la sentencia.

El caso es que originalmente si se pone un response.write para ver como construye la sentencia, la construye correctamente pero luego no va.

select from prorrogas where referenciaasesoria=34 and fechainicioprorroga>=#15/12/2005#
__________________

Espero haber aprendido algo de tí.
A mi padre.

Última edición por ciberpata; 06/07/2007 a las 11:31
  #26 (permalink)  
Antiguo 06/07/2007, 11:37
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>)

esta interesante el error, y al principio parecia que solo seria unos cuantos detalles en tu SQL y ya... pero ta' quemando un poco mas el cerebro de lo que realmente parece

__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #27 (permalink)  
Antiguo 06/07/2007, 11:40
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años
Puntos: 0
Re: Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>)

U_goldman:
En las dos sentencias que me envias me devuelve error de sintaxisi. Se esperaba insert,delete,update....
__________________

Espero haber aprendido algo de tí.
A mi padre.
  #28 (permalink)  
Antiguo 06/07/2007, 11:46
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>)

Cita:
Iniciado por ciberpata Ver Mensaje
U_goldman:
En las dos sentencias que me envias me devuelve error de sintaxisi. Se esperaba insert,delete,update....
Eso quiere decir que no le estás pasando el query, puedes poner solo el código funcional que estás ocupando? podrías colgar tu aplicación en algun lado donde se pueda descargar?
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #29 (permalink)  
Antiguo 06/07/2007, 11:59
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años
Puntos: 0
Re: Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>)

Si quieres verla funcionando entra en

El asunto está en Prorrogas/modificar-ver prorrogas, se meten dos fechas:
10/01/2001 y 10/02/2010 y debería darte el error.
Gracias
__________________

Espero haber aprendido algo de tí.
A mi padre.

Última edición por ciberpata; 03/07/2010 a las 05:45
  #30 (permalink)  
Antiguo 06/07/2007, 12:04
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Re: Una consulta en ACCESS toma como nombre de campo el caracter mayor que (>)

pero si jala, carga un valor
1 MARGARITA BARREIRO GRELA DNSEMPRESAS [Imprimir Comunicación de Acuerdo para Formación Teórica] [Imprimir Certificado de Impartición de Formación Teórica número 1] [Programa de Formación] [Imprimir Prorroga número 1]
__________________
JuanRa Pérez
San Salvador, El Salvador
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:15.