Como puedo llevar un parametro desde un texto para una consulta.

Tengo una tabla de indicadores y en uno de sus campos tengo la formula SQL para obtener un resultado, en la formula tengo dos parámetros (El mes y el año) que estarán en un formulario antes de ejecutar la siguiente función:

Private Sub Llena_Indicadores(xAño As Long, xMes As Long)
Dim A As Recordset
Dim xstrSQL As String
Set Db = DBEngine(0)(0)
strSQL = "Select * From Indicadores Where Formula_SQL is not null"
Set Rs = Db.OpenRecordset(strSQL)
If Rs.RecordCount > 0 Then
Do While Not Rs.EOF
'Calcula el indicador
Set A = Db.OpenRecordset(Rs!Formula_SQL)
xvalor = notnull0(A!Resultado)
'Agrega un indicador a la tabla mensual
strSQL = "Insert into Indicador_Mensual Values("
strSQL = strSQL & Rs!Indicador & "," 'Indicador
strSQL = strSQL & xAño & "," 'Año
strSQL = strSQL & xMes & "," 'Mes
strSQL = strSQL & xvalor & ")" 'Valor
Db.Execute (strSQL)
Rs.MoveNext
Loop
End If
End Sub

Pero no toma el valor del campo del formulario, lo interpreta como un texto. Originalmente la consulta es:

SELECT Count([Sucursal]) AS Resultado FROM Comercio_Sucursal WHERE (((Year([Fecha_Inicio]))=[xaño]) AND ((Month([fecha_inicio]))=[xMes]));

1 Respuesta

Respuesta
1

La SQL de la consulta, para hacer referencia a los campos de un formulario, que debe estar cargado, es así, suponiendo que se llame TuFormulario, y los cuadros de texto en el formulario xaño y xMes:

SELECT Count([Sucursal]) AS Resultado FROM Comercio_Sucursal WHERE (((Year([Fecha_Inicio]))=[Formularios]![TuFormulario]![xaño]) AND ((Month([fecha_inicio]))=[Formularios]![TuFormulario]![xMes]));


http://nksvaccessolutions.com/Foro 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas