Access - error en recordset

 
Vista:
sin imagen de perfil
Val: 5
Ha aumentado su posición en 18 puestos en Access (en relación al último mes)
Gráfica de Access

error en recordset

Publicado por Miguel (3 intervenciones) el 03/12/2018 10:11:22
Buenas a todos;

Os cuento, tengo un formulario basado en una tabla (Tabla2) y para rellenar un campo de este formulario necesito obtenet un valor de un campo de Tabla1,después se suman los valores y se actualiza la tabla. Estoy intentando obtener el valor del campo de tabla1 mediante una consulta VBA y me aparece el error en "Set rsq = db.OpenRecordset(SQL)".
El código que he usado es:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Dim db As DAO.Database
Dim rsq As DAO.Recordset
Dim SQL As String
Dim Equipo As String
 
oper = Form!Oper
If oper = "Opr1" Then
 
Equipo = Form!Id_Equipo
Set db = CurrentDb
SQL = "SELECT Tabla1.Campo1, Tabla1.Campo2 FROM Tabla1 WHERE Form!campo2 ='" & valor & "'"
 
Set rsq = db.OpenRecordset(SQL)  <- ERROR EN ESTE PUNTO.
 
meses = rs.Fields(0)
.
.
.
.
Por otra parte, he intentado realizar la operativa mediante campos en el formulario con origen de datos en consultas. el problema que surge es que, a pesar de que el campo muestra el valor deseado, no puedo realizar la suma de valores.
al leer el valor del campo en vba, el resultado en null. debo marcarlo previamente haciendo click encima del campo (se queda marcado con el fondo en negro). de esta forma si puedo leer el valor.

He intentado con setfocus pero no sirve. ya que es necesario "seleccionar" el campo.



cualquier ayuda será bienvenida

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

error en recordset

Publicado por Anonimo (3312 intervenciones) el 03/12/2018 23:44:34
Creo que el error viene de la definición de SQL, en la parte que condiciona a ese subconjunto de datos (lo que esta detrás del 'where', no se define de forma correcta al origen:

…. WHERE Form!campo2 ='" & valor & "'"

Falta el nombre del formulario o (en base a que 'FORM' define a un subformulario):
….. WHERE FORMS!NOMBRE_FORMULARIO!NOMBRE_SUBFORMULARIO!Form!campo2 ='" & valor & "'"

Si no es un formulario, lo idóneo seria:
….. WHERE FORMS!NOMBRE_FORMULARIO!campo2 ='" & valor & "'"

FORMS ===> define a la colección de formularios
FORM ===> define a un objeto de un formulario como un formulario dentro de ese objeto (un subformulario), por ello debe de indicarse de la colección de formularios cual de ellos es.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar