
Estoy intentando crear una macro para actualizar el valor de un campo en un formulario basado en los resultados de una consulta.
Soy completamente nuevo en el trabajo con vba en Access, así que me disculpo si hago una pregunta básica.
Debo mencionar que la consulta de "prueba" devuelve exactamente un resultado. Básicamente, se usa de manera similar a VLookup.
Actualmente mi código es el siguiente:
Private Sub UpdateBasic_Click()
Dim bucket As String
DoCmd.OpenQuery "test", acViewNormal, acReadOnly
'this line is meant to record the result of the query into a variable. It is not working but I haven’t found the right command to get it to pick up the data yet.
bucket = A1
DoCmd.Close acQuery, "test", acSaveNo
DoCmd.OpenForm "BasicData", acNormal, , , acFormEdit, acWindowNormal, "Global_ID = 'sdkfa'"
'this line is meant to update the value of the field on the form.
DoCmd.SetProperty testfield, acPropertyValue, bucket
End Sub
No tengo suerte para que el comando SetProperty funcione. Me dice constantemente que el tipo de datos no coincide, independientemente de si intento darle una variable como depósito o un valor como 10. El mensaje de error es el siguiente:
Error de tiempo de ejecución '2948': una expresión que ingresó tiene el tipo de datos incorrecto para uno de los argumentos.
Cualquier ayuda sería apreciada.
Respuesta1
DoCmd.SetProperty testfield, acPropertyValue, bucket
Usando el código anterior, está intentando configurar elproperty
para el control, no cambiar elvalue
. Una propiedad sería el color de fondo, el alto, el ancho, etc.
Si desea establecer el valor, simplemente debe usar la me
función para hacer referencia al control en un formulario.
me.testfield = bucket
Esto le indica al acceso que complete el control de formulario nombrado testfield
con el valor que contiene la variable bucket
.
Nota: Es posible que deba agregar un me.refresh
comando después de ese para que el formulario actualice los campos.