** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Sintaxis Openrecordset
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoSintaxis Openrecordset

 Responder Responder
Autor
Mensaje
simonpru Ver desplegable
Habitual
Habitual
Avatar

Unido: 24/Febrero/2009
Localización: España
Estado: Sin conexión
Puntos: 194
Enlace directo a este mensaje Tema: Sintaxis Openrecordset
    Enviado: 25/Enero/2021 a las 18:02
Buenas

Estoy intentando abrir una tabla donde me seleccione los registros que hay con el filtro de que el año de la fecha sea igual al año de la fecha actual.

tengo esta sintaxis en el evento abrir formulariio

Dim  VARANO
VARANO = Year(Me.MFECHA)
Dim TABLA As dao.Recordset
Set TABLA = CurrentDb.OpenRecordset("SELECT * FROM BLACKFACT ORDER BY FECHA WHERE YEAR.FECHA = ") & VARANO

pero me tira error.

Muchas gracias.


Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14738
Enlace directo a este mensaje Enviado: 25/Enero/2021 a las 18:34
2 cosas:
- Orden de las clausulas: SELECT --> FROM --> WHERE --> ORDER 
- El paréntesis después del final de la SQL

Xavi, un minyó de Terrassa

Mi web
Arriba
simonpru Ver desplegable
Habitual
Habitual
Avatar

Unido: 24/Febrero/2009
Localización: España
Estado: Sin conexión
Puntos: 194
Enlace directo a este mensaje Enviado: 25/Enero/2021 a las 18:57
si lo pongo asi

Set TABLA = CurrentDb.OpenRecordset("SELECT * FROM BLACKFACT WHERE YEAR.FECHA =") & VARANO & ("ORDER BY FECHA")

me tira error no coinciden los tipos.

Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14738
Enlace directo a este mensaje Enviado: 25/Enero/2021 a las 19:16
Vamos a ver...

Dentro de los paréntesis que engloban la SQL tiene que estar toda la cadena SQL. Si la cadena se construye a trozos, pues se concatena.

("SELECT ... FROM .... WHERE " & condiciones & " ORDER ...")

Por otro lado ese YEAR.FECHA me da a mi que no funcionará. Cualquier función que devuelva un resultado en base a unos argumentos requiere que esos (los argumentos) vayan entre paréntesis:

Year(Fecha)

Y, finalmente (y como consejo) yo intentaría evitar nombres de campos/tablas/variables/funciones que pudieran generar conflicto en la aplicación. Fecha es uno de esos. Yo habría diseñado la tabla llamando al campo FechaLoQueSea.

Un saludo
Xavi, un minyó de Terrassa

Mi web
Arriba
simonpru Ver desplegable
Habitual
Habitual
Avatar

Unido: 24/Febrero/2009
Localización: España
Estado: Sin conexión
Puntos: 194
Enlace directo a este mensaje Enviado: 26/Enero/2021 a las 19:14
Correcto Crack. Ya he conseguido que funcione bien.
Muchisimas gracias.
Podeis cerrar hilo.

Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable