Como soluciono el error 424 "se requiere un objeto"

Tengo este código

Private Sub Comando38_Click()

If Forms!arribo_camaron.productos.value = tbl!inventario_de_productos.productos(1 - 100) Then
tbl!inventario_de_productos.existencia.Value = tbl!arribo_camaron.kilogramos.Value + tbl!inventario_de_productos.existencia.Value
CurrentDb.Execute "FROM camaron INNER Join inventario_de_productos ON camaron.kilogramos inventario_de_productos.existencia"
End If
End Sub

El error es el de negritas

1 respuesta

Respuesta
2

Si tienes un campo en la tabla que se llama "productos(1 - 100)", lo que considero un "error", prueba a ponerlo así:

If Forms!arribo_camaron.productos.value = tbl!inventario_de_productos.[productos(1 - 100)] Then

¡Gracias!  intentare cambiarlo

Disculpa me marco el error 2465 "error definido por la aplicación o el objeto

"

¿Y el punto antes del paréntesis qué pinta? Porque en el código que pones en la pregunta no aparece...

no lo tengo ya pero me sigue apareciendo el mensaje de error, es que mira quiero que de un formulario cuando el producto sea igual al de la tabla sume sus kilogramos es para un punto de venta 

Dime una cosa, ¿el error en qué línea te lo marca? Porque ahora que me fijo en el código de tu pantallazo, en la línea del CurrentDb. Execute tienes mal construida la SQL.

Es en la primera línea

Para mí, todo el código que muestras, no tiene ningún sentido, y te explico:

1º/ No puedes comparar el valor de un campo de un formulario con el valor de un campo de una tabla directamente, es decir, igualando ambos, porque mientras que el valor del formulario es único (en el sentido de que está identificado), al poner el campo de la tabla lo intentaría comparar con el de todos los registros, y eso es algo que Access no permite.

Si quieres buscar en un campo de la tabla un valor concreto que pones en un cuadro de texto (u otro control) de un formulario, debes usar funciones de dominio, como DLookUp, DCou*"nt... Ambas funciones funcionan parecido, la primera devuelve el valor de un campo o un nulo, dependiendo si el valor buscado existe o no, mientras que la segunda devuelve un 0 o el número de registros que contienen el valor buscado (estas funciones las tienes en la respuesta de Icue a tu otra pregunta)

2º/ Para modificar un valor de un tabla, tienes varias opciones, como ejecutar una SQL por código, una consulta de actualización existente en tu BD, o si el formulario depende sobre la tabla, poner el valor en un control del propio formulario (lo que hace Icue en su respuesta a tu otra pregunta).

Pero intentar hacerlo con tbl! NombreTabla. NombreCampo no te va a funcionar. Además, imagino que en ningún sitio de tu código has creado una variable llamada tbl y le has asignado como valor la tabla en cuestión...

Resumiendo, que lo que necesitas es un código como el que ya te indicó Icue aquí: Quiero saber como insertar un registro de una tabla a otra en acces y luego que este se sume al mismo

Que con los datos que indicas, y lo que yo interpreto, sería algo así:

If DCount("*","[INVENTARIO DE PRODUCTOS]","[PRODUCTOS(1 to 500)]='" & Me.Productos & "'")>0 Then
  CurrentDb.Execute "UPDATE [INVENTARIO DE PRODUCTOS] SET EXISTENCIA=EXISTENCIA+" DLookUp("KILOGRAMOS","[ARRIBO CAMARON]","PRODUCTO='" & Me.Productos & "'") 
End If

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas