Jesús, antes de nada, permíteme unas consideraciones
1º Es de suponer que en un mismo arribo te llegarán varios productos. Por eso creo que sería conveniente tener una tabla Arribos y otra tabla DetalleArribo donde se "guarden" los diferentes productos que han llegado en un arribo. Es una opinión.
2º Personalmente haría que los formularios dependieran de una tabla Aux y otra DetalleAux exactamente iguales que arribos y detallearribo. Por si en un determinado momento has escrito, por ejemplo, el barco y el lote, pero decides no seguir. Access, por defecto, automáticamente te guardaría los datos en la tabla, mientras que si depende de la tabla Aux la borras cuando quieras.
Dicho esto, si tengo la tabla Arribos
La tabla Inventario
Con la tabla Arribos construyo un formulario, da igual que sea único o continuo
Cuando pulso Guardar, primero me cuenta, por si ya lo hubiera contabilizado, que me mandaría un mensaje avisándome y no lo guardaría. Como en este caso no
Llega un nuevo arribo y voy a repetir el producto
Cuando pulso Guardar
Me ha aumentado las existencias
El código del botón guardar es
Private Sub Comando13_Click()
If DCount("*", "arribos", "idarribo=" & Me.IdArribo & "") Then
MsgBox "Ese arribo ya ha sido contabilizado", vbOKOnly + vbExclamation, "Otra vez, quizá, hoy no"
DoCmd.CancelEvent
Else
If Nz(DCount("*", "inventario", "producto='" & Me.Producto & "'")) >= 1 Then
DoCmd.RunSQL "update inventario set existencias=existencias+" & Me.Kilos & " where producto='" & Me.Producto & "'"
Else
DoCmd.RunSQL "insert into inventario(producto,existencias) values(producto,kilos)"
End If
End If
End Sub