Actualizar campo de un formulario recorriendo los registros uno por uno

Tengo problema para recorrer uno por uno los registros de un formulario desde otro.

Me explico un poco mejor tengo un formulario con los campos independiente, 1 NUMEROPRE formato numero generales, y otro POR CIENTO este formato moneda con un botón actualizar al pulsar dicho botón este abre un formulario llamado "unitariodecapitulo" este tiene el campo precio y necesito que recorra los registro y actualice el precio + el POR CIENTO del anterior formulario.

Respuesta
1

Creo que para dar una respuesta efectiva, se debería aclarar la relación entre los registros a actualizar y 'numeropre' para que solo se actualizasen los afectados.

Todo ello en base a que se abre un formulario para la toma de datos en el que hay al menos tres objetos:

.- El campo NUMEROPRE
.- EL campo POR CIENTO
.- El botón para actualizar (que abre un formulario con los datos a actualizar)

Una forma de hacer la actualización (que mantendría todo el entorno actual), es que tras abrir el formulario 'unitario de capitulo' (incluso minimizado e invisible si solo se utiliza para esta actualización), seria enviarle el dato con el porcentaje en la propia llamada y recorrer su RecordsetClone actualizando el campo.

Esto es:
Al abrir el formulario detectaría que hay un valor en su propiedad OpenArgs (el valor: el porcentaje) y lo utiliza para actualizar el campo.
Si se le abre sin valor en esa propiedad se seguirá utilizando como ahora se utiliza.

2 respuestas más de otros expertos

Respuesta
1

Si el formulario Unitariodecapitulo depende de una tabla no necesitas abrirlo, basta con que en ese botón que dices pongas algo como

Docmd.setwarnings false

docmd.runsql"update unitariodecapitulo set precio=precio+" & me.[por ciento] & ""

Me explico, actualízame el campo Precio de la tabla unitariodecapitulo al valor que tiene + el valor que figura en ese momento en el control Por Ciento de dicho formulario.

He supuesto que la tabla origen del formulario Unitario... se llama igual, en caso de que no sea así basta con poner su nombre real.

Respuesta
1

Le complemento a la respuesta de Julián hace falta la cláusula Where porque así como lo explica va a actualizar todos los registros de la tabla. Algo como

 docmd.runsql"update unitariodecapitulo set precio=precio+" & me.[por ciento] & " Where ID= " & Me.idformulario.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas