Access - BOTON PARA ACTUALIZAR CAMPOS DE FORMULARIOS

   
Vista:

BOTON PARA ACTUALIZAR CAMPOS DE FORMULARIOS

Publicado por Emmanuel emmanuelflores91@hotmail.com (7 intervenciones) el 25/08/2017 21:59:29
Buenos tardes a todos. Antes que nada aclaro que no soy programador, solo tengo conocimientos básicos de Access y estoy trabajando en una base de datos la cual me presenta un problema que no puedo resolver debido a mi ignorancia en el campo de la Programación. Por eso recurro a su ayuda.

BD1

En la imagen que adjunto se puede ver un formulario con tres campos (“ORIGINAL”, “COPIA”, “AVISO”) los cuales tengo que completar usando el cuadro combinado “SEL_DESTINO” y los tres botones.
Lo que necesito es asignarles una macro o un código a los botones para que al hacerles clic, copie el contenido seleccionado del cuadro combinado “SEL_DESTINO” y lo pegue en el campo que corresponda agregando una coma y un espacio, para poder seguir agregando valores.

Se selecciona el destino “A” y luego se hace clic en el botón “ORIGINAL”, entonces automáticamente se copia el valor “A, “ (con una coma y un espacio) en el campo “ORIGINAL” que es el que corresponde a ese botón.
Al seleccionar el valor “B” y luego hacer clic en el botón “ORIGINAL”
Se debería actualizar el valor del campo “ORIGINAL” quedando “A, B, “

BD2

El mismo funcionamiento deberían tener los tres botones, copiando los
Valores a sus respectivos campos en el formulario.

Lo único que pude conseguir es asignarles una macro a los botones con la acción “EstablecerValor”. Pero no es exactamente lo que necesito, ya que al ejecutar la macro, lo que hace es reemplazar el contenido del campo por el nuevo valor seleccionado. Y lo que quiero es que vaya agregando los nuevos valores manteniendo los anteriores.

Información adicional:

BD3

Esas son las tablas que tengo creadas.
La tabla DESTINOS, campo "Ndestino" tiene almacenados los valores que se ven en el cuadro combinado.
La tabla MOVIMIENTOS es en donde se deben almacenar los valores que se cargan en el formulario

Espero que se haya entendido mi explicación y alguien me pueda ayudar. Desde ya muchas 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

BOTON PARA ACTUALIZAR CAMPOS DE FORMULARIOS

Publicado por Anonimo (682 intervenciones) el 26/08/2017 00:21:53
Con macros la solución es (tal como se efectuaría con VBA) añadir el valor actual + el nuevo

El valor actual del objeto es: el mismo
El nuevo: el que este presente en el combo

Un caso cualquiera
Supongamos que tenemos estos tres objetos

Un botón de nombre 'BtnOriginal'
Un Combo denominado 'CboSel_Destino'
un cuadro de texto al que se le conoce por 'TxtOriginal'

El dato que se ha de poner como valor a adjudicar al cuadro de texto TxtOriginal mediante la acción 'establecer valor' en la macro seria:
=[TxtOriginal] & ", " & [CboSel_Destino]

(quizás la sintaxis no sea la correcta pero ... la idea creo que la refleja, es que eso de las macros esta en un estante olvidado)

Con toda probabilidad sobrara alguna coma (aparecerá al inicio), se podría poner al final alterando el orden, pero también sobraría

Para evitarlo se tendría que controlar el contenido del cuadro de texto, pero con macros ... habría que utilizar otra acción 'establecer valor' condicionada por el valor actual del cuadro de texto y así añadir o no la coma de separación.

Y ya puestos a hacerlo bien, se tendrían que controlar también las repeticiones (las suelen causar los dedos nerviosos) ... etc.

Ojo con esas inserciones, un campo de texto en la tabla esta limitado a 254 caracteres (o alguno menos) y poner un memo para eso ... seria una aberración
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

BOTON PARA ACTUALIZAR CAMPOS DE FORMULARIOS

Publicado por Emmanuel emmanuelflores91@hotmail.com (7 intervenciones) el 29/08/2017 18:38:46
Muchas gracias por tu respuesta. Me sirvió mucho y pude lograr lo que pretendía.
Sólo me faltaría pulir un pequeño detalle, que es justamente lo que mencionaste respecto a la coma que sobra. En efecto el primer valor que se ingresa en el Cuadro de Texto está precedido por una coma al principio. En lo posible me gustaría que el primer valor sea sin la coma.
Entiendo que debería usar un condicionante cuando el cuadro de texto no contiene ningun valor, pero nose como hacerlo en la vista de diseño de Macros.
Intenté poner un "EsNulo" pero no me lo permitió.
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

BOTON PARA ACTUALIZAR CAMPOS DE FORMULARIOS

Publicado por Anonimo (682 intervenciones) el 29/08/2017 20:58:07
Quizás la mas sencilla de implementar con macros, consista en eliminar el primer carácter (o los dos primeros si tras la coma hay un espacio) y para ello se utilizaría la función 'MID' que permite tomar partes de una cadena (en la ayuda de Access están todas las aplicaciones y con ejemplos prácticos).

Se utilizaría al finalizar de añadir datos y se utilizaría nuevamente la acción 'establecer valor'.

Utilizar condicionales en las macros es sencillo, si los recuerdos son fieles, se abre una nueva columna (en la que se impondría la condición a cada línea de forma individual).

Si se toma esa senda, la coma se añadiría condicionado a que en el cuadro de texto exista o no contenido y la comparación seria contra una cadena de texto vacía (dos dobles comillas consecutivas).

Se utilizarían dos sentencias consecutivas de 'establecer valor', una (la primera) es la que estaría condicionada, si no se cumple la condición (cuadro de texto vacío) añade la coma y el espacio, la segunda sentencia siempre añadiría el dato.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

BOTON PARA ACTUALIZAR CAMPOS DE FORMULARIOS

Publicado por Emmanuel (7 intervenciones) el 05/09/2017 16:32:22
Muchas gracias por tu ayuda. Me sirvió mucho. Perdon por la tardan de la respuesta.

saludos.
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