• Domingo 22 de Diciembre de 2024, 21:37

Autor Tema:  Re: Capturar el año en una BD Oracle para compararlo con una  (Leído 1845 veces)

Mellileo

  • Miembro MUY activo
  • ***
  • Mensajes: 110
    • Ver Perfil
Re: Capturar el año en una BD Oracle para compararlo con una
« en: Martes 8 de Julio de 2003, 01:26 »
0
Ayuda genios!!

Necesito filtrar un recordset que contiene registros de una Base de Datos Oracle según un número de solicitud y año de la misma utilizando una sentencia SQL.

El código que tengo es el siguiente:

With frmSolicitudes.datSolicitudes
      mSql = "Select * From tblEstablecimientos Where Nro_Solicitud = " & Val(txtSolicitud) & _
             " And Year(Fecha_Solicitud) = " & Val(txtAnio)
      .RecordSource = mSql
      .Refresh
      If .Recordset.RecordCount <= 0 Then
        mMensaje = "La solicitud buscada no se encuentra registrada"
        MsgBox mMensaje, vbExclamation, "Error de Busqueda"
        .RecordSource = "Select * From tblEstablecimientos Order By Fecha_Solicitud, Nro_Solicitud"
        .Refresh
      End If
    End With

Al ejecutar el código anterior saca un error con la función YEAR dentro de la sentencia SQL cuando trata de ferescarla con .Refresh!

Alguien me puede ayudar?

Gracias de antemano por cualquier ayuda!

Saludos Mellileo!
Saludos...

Mellileo!!

J.M.Movilla

  • Miembro MUY activo
  • ***
  • Mensajes: 427
    • Ver Perfil
Re: Capturar el año en una BD Oracle para compararlo con una
« Respuesta #1 en: Martes 8 de Julio de 2003, 10:00 »
0
Indudablemente el problema estriba en que la variable Fecha_Solicitud no te la reconoce como de tipo Date...  Cambia su formato.

Saludos y suerte

Mellileo

  • Miembro MUY activo
  • ***
  • Mensajes: 110
    • Ver Perfil
Re: Capturar el año en una BD Oracle para compararlo con una
« Respuesta #2 en: Miércoles 9 de Julio de 2003, 16:55 »
0
La que tu llamas variable Fecha_Solicitud en realidad es un campo de la tabla tblEstablecimientos.

Ahora, si estoy equivocado, me gustaría que por favor me explicaras cómo debo hacer para cambiar el formato.

Ten en cuenta que la sentencia mSql está aplicada a un control Adodc que se conecta a SGDB de Oracle, y ésta se ejecuta después de concetado a las tablas.  Será que el motor de BD no reconoce la función Year()?

Será que al ser propia del VB 6.0 y no se reconoce en Oracle?

Cómo hago para que en Oracle a travéz de una sentencia SQL se listen los registros de una tabla que correspondan a determinado año?


Gracias por tu ayuda!

Saludos Mellileo!
Saludos...

Mellileo!!

J.M.Movilla

  • Miembro MUY activo
  • ***
  • Mensajes: 427
    • Ver Perfil
Re: Capturar el año en una BD Oracle para compararlo con una
« Respuesta #3 en: Miércoles 9 de Julio de 2003, 18:34 »
0
Efectivamente, he denominado como variable un dato que no hay duda de que es un campo... Ya perdonarás... Pero es que no existe explicación para que te dé error la función Year() si se refiere a un dato (sea variable o campo) de tipo Date...

Yo tomo registros de Oracle para el control de las vacunaciones... Como unas veces me interesan los nacidos en el año actual, otras veces los que van a cumplir los 6 años (siempre referido al año en curso...) utilizo la siguiente función, que indudablemente tú conoces:
"DateDiff('yyyy', FecNac, Date)"; me funciona sin problemas...

Y digo yo:  Sabiendo que esto te va a funcionar, ¿no te interesaría generar una variable FechadelAnio con "01/01/" & txtAnio y seleccionar los registros en que DateDiff('yyyy', Fecha_Solicitud, FechadelAnio) sea igual a cero?  Al menos habremos descartado el posible error de Year()...

"No me llames iluso..."

Suerte y un afectuoso saludo

Mellileo

  • Miembro MUY activo
  • ***
  • Mensajes: 110
    • Ver Perfil
Re: Capturar el año en una BD Oracle para compararlo con una
« Respuesta #4 en: Martes 15 de Julio de 2003, 00:14 »
0
Hola señor JMMovilla:

Primero:  Nunca fue mi intensión "Llamarte Iluso...".  Disculpa si te sentiste ofendido!!!

Seguno:  He encontrado una función función distinta pero muy funcional, es la siguiente:

to_char(Fecha_Solicitud,'yyyy')

Esta función es propia del Oracle y es muy útil al igual que la función "to_number(variable)  para el tratamiento de fechas.

De nuevo, lo siento si mal entendiste las cosas, al parecer nos expresamos de distinta forma.

Saludos  Mellileo!!
Saludos...

Mellileo!!

J.M.Movilla

  • Miembro MUY activo
  • ***
  • Mensajes: 427
    • Ver Perfil
Re: Capturar el año en una BD Oracle para compararlo con una
« Respuesta #5 en: Miércoles 16 de Julio de 2003, 10:58 »
0
Que no, hombre, que no...
Ya se ve que no estás al tanto de una de nuestras canciones más en boga "No me llames iluso porque tenga una ilusión..." Yo reconozco que la solución que te proponía era un tanto quimérica, por eso "te cantaba" esa canción de moda... Pero en ningún momento se me ocurrió sospechar que tú me ofendieras o me insultaras... Perdona el que te haya inducido involuntariamente a pensar en esa posibilidad...
Gracias por las soluciones que apuntas, totalmente desconocidas para mí, y un afectuoso saludo

Mellileo

  • Miembro MUY activo
  • ***
  • Mensajes: 110
    • Ver Perfil
Capturar el año en una BD Oracle para compararlo con una var
« Respuesta #6 en: Miércoles 16 de Julio de 2003, 14:45 »
0
:beer:
Saludos...

Mellileo!!