Programación General > Visual Basic 6.0 e inferiores

 Re: Capturar el año en una BD Oracle para compararlo con una

(1/2) > >>

Mellileo:
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!

J.M.Movilla:
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:
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!

J.M.Movilla:
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:
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!!

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa