** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - consulta funciona bien en SQL pero error en VBA
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoconsulta funciona bien en SQL pero error en VBA

 Responder Responder
Autor
Mensaje
emijas Ver desplegable
Asiduo
Asiduo


Unido: 03/Junio/2004
Localización: España
Estado: Sin conexión
Puntos: 377
Enlace directo a este mensaje Tema: consulta funciona bien en SQL pero error en VBA
    Enviado: 08/Mayo/2018 a las 09:41
Buenos Dias

Tengo una consulta para anexar datos que funciona desde las consultas perfectamente.

Esta es la consulta en SQL 

INSERT INTO tbl_ActualizacionDescuentos ( Descto, FechaPresup, NumPresup, DescuentoCalc, TotalPresup )
SELECT [descto]/[TotalPresup] AS PorcDesc, tbl_Presupuestos.FechaPresup, tbl_Presupuestos.NumPresup, tbl_Presupuestos.Descto, [forms]![presupuestos]![total] AS TotalPresup
FROM tbl_Presupuestos
WHERE (((tbl_Presupuestos.NumPresup) Like [forms]![presupuestos]![numpresup]));


La he convertido a VBA usando "De Sql a VBA" de  Jefferson Jimenez (JJJT) y la he asignado al hacer click a un boton, pero da el siguiente error.

Aqui la convertida a VBA
 con_ActualizacionDescuentoSQL = "INSERT INTO tbl_ActualizacionDescuentos ( Descto,"
    con_ActualizacionDescuentoSQL = con_ActualizacionDescuentoSQL & "FechaPresup,"
    con_ActualizacionDescuentoSQL = con_ActualizacionDescuentoSQL & "NumPresup,"
    con_ActualizacionDescuentoSQL = con_ActualizacionDescuentoSQL & "DescuentoCalc,"
    con_ActualizacionDescuentoSQL = con_ActualizacionDescuentoSQL & "[Total Presup] )"
    con_ActualizacionDescuentoSQL = con_ActualizacionDescuentoSQL & " SELECT [descto]/[Total presup] AS PorcDesc,"
    con_ActualizacionDescuentoSQL = con_ActualizacionDescuentoSQL & "[forms]![presupuestos]![FechaPresup] AS FechaPresup,"
    con_ActualizacionDescuentoSQL = con_ActualizacionDescuentoSQL & "[forms]![presupuestos]![numpresup] AS NumPresup,"
    con_ActualizacionDescuentoSQL = con_ActualizacionDescuentoSQL & "[forms]![presupuestos]![descto] AS descto,"
    con_ActualizacionDescuentoSQL = con_ActualizacionDescuentoSQL & "[forms]![presupuestos]![totalpresup] AS TotalPresup"
    con_ActualizacionDescuentoSQL = con_ActualizacionDescuentoSQL & " FROM [con_Totales Presupuesto]"
    con_ActualizacionDescuentoSQL = con_ActualizacionDescuentoSQL & " INNER JOIN tbl_Presupuestos"
    con_ActualizacionDescuentoSQL = con_ActualizacionDescuentoSQL & " ON [con_Totales Presupuesto].NumPresup=tbl_Presupuestos.NumPresup"
    con_ActualizacionDescuentoSQL = con_ActualizacionDescuentoSQL & " WHERE ((([forms]![presupuestos]![numpresup]) Like [forms]![presupuestos]![numpresup]));"
    con_ActualizacionDescuentoSQL = con_ActualizacionDescuentoSQL & " "


"no se han especificado valores para algunos de los parámetros requeridos"

alguien me podría ayudar

Gracias de antemano.
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 5596
Enlace directo a este mensaje Enviado: 08/Mayo/2018 a las 10:19
Hola!

En este Hilo he elaborado una aplicación que convierte SQL a VBA prueba con ella a ver.
Un Saludo.
Arriba
pitxiku Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 27/Septiembre/2017
Localización: En mi casa
Estado: Sin conexión
Puntos: 1218
Enlace directo a este mensaje Enviado: 08/Mayo/2018 a las 11:39
Hay que saber cómo ejecutas la consulta, pero todo parece indicar que la estás ejecutando con un objeto que ni sabe ni puede acceder a los formularios de Access, con lo que no puede ver qué valor tiene cada uno de esos controles, y por eso te está pidiendo los valores. Prueba a sacar todos esos forms!... de las comillas, para que VBA coloque ahí sus valores:

con_ActualizacionDescuentoSQL = con_ActualizacionDescuentoSQL & [forms]![presupuestos]![FechaPresup] & " AS FechaPresup,"

Lo que no acabo de ver es la condición WHERE: ¿por qué el valor de un control de un formulario debe ser parecido al valor del mismo control del mismo formulario?
Arriba
emijas Ver desplegable
Asiduo
Asiduo


Unido: 03/Junio/2004
Localización: España
Estado: Sin conexión
Puntos: 377
Enlace directo a este mensaje Enviado: 08/Mayo/2018 a las 18:49
Buenas Tardes


He hecho lo que ha sugerido pitxiku, es decir sacar todos los forms de las comillas y ha funcionado perfectamente, por lo tanto muchas gracias por tu ayuda.

Sobre lo de where, tienes razon ya lo he arreglado, me habia vuelto un poco loco buscando una forma de que funcionara.

A Munir, gracias por el SQl a VBA.
 
Pueden cerrar el hilo
Arriba
garci56 Ver desplegable
Nuevo
Nuevo


Unido: 09/Mayo/2018
Localización: Madrid
Estado: Sin conexión
Puntos: 14
Enlace directo a este mensaje Enviado: 09/Mayo/2018 a las 11:51
Hola, prueba a cambiar:

[forms]![presupuestos]![FechaPresup] AS FechaPresup

por forms("presupuestos").FechaPresup AS FechaPresup

Creo que VBA no entiende el formato [Tipoobjeto]![nombreObjeto] del SQL de Access.

Saludos!
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable