Access - necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

 
Vista:
sin imagen de perfil
Val: 75
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Payan (28 intervenciones) el 12/05/2021 13:25:13
Hola, necesitaria que un campo de un formulario se me rellenara automaticamente de una tabla.

En ese mismo formulario se rellenan otros campos que vienen de otra tabla sin problema, pq los cogi de esa tabla, pero en este caso es de la misma tabla y quiero que una vez introducido en el formulario si vuelvo a poner la referencia se rellene tambien ese automaticamente.
Se podria hacer con una macro? pq en vb estoy muy pegada

Un saludo
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

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Anonimo (3316 intervenciones) el 12/05/2021 21:39:38
La acción de macro que permite asignar valores se llama 'Establecer Valor'
Hay otras posibilidades para obtener valores de forma automática, una de ellas es establecerlo como 'valor predeterminado'
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
sin imagen de perfil
Val: 75
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Payan (28 intervenciones) el 13/05/2021 11:58:13
En este caso es acces 2019, creo que seria "encontrar registro", lo probe al hacer click pero solo sale momentanemente si pongo el cursor en ese campo, en este caso en eventos no se donde deberia situar la macro

Gracias por la ayuda!
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

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Anonimo (3316 intervenciones) el 13/05/2021 23:07:12
No dispongo de esa versión, pero si se parece en algo a sus antecesoras, las acciones de las macros estaran comprimidas (una seleccion de las mas utilizadas) o expandidas (todas visibles).

Localiza la de 'establecer valor' que tiene poco en común con la de 'buscarlo'.
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
sin imagen de perfil
Val: 75
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Payan (28 intervenciones) el 14/05/2021 12:12:20
Gracias por la respuesta!
Si, la encontré, pero se ve q no pongo bien ni el elemento ni la expresión, pq no me hace nada!
Me gustaría que cuando meto una referencia, que es la clave principal, al darle al enter se quedase copiada en su casilla como la información de los otros campos que vienen de la otra tabla!

La tabla seria SEGUIMIENTOS PENDIENTES, el campo que quiero que se copie de la tabla es FECHA AVANCE, REF SINIESTRO es la clave principal, que es el registro con el que coge los demás datos de las otras tablas también
No se si algo estoy haciendo mal

un saludo!
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

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Anonimo (3316 intervenciones) el 14/05/2021 12:56:43
Por partes:

Asignar un valor a un cuadro de texto con una macro, utiliza la acción 'establecer valor' y esta se puede repetir (en la misma macro) tantas veces como elementos únicos a copiar.

Para ¿obtener? un valor que esta en una tabla se utiliza con éxito la función de dominio DLookup.

Por otra parte para poder darle los datos imprescindibles a la función (Dlookup) y obtener el dato, se necesita la referencia que lo distinga.

Los pasos serian:
.- Introducir la clave principal (la referencia)
.- en su evento 'después de actualizar' ejecutar la macro

.- La macro debería ejecutar tantas asignaciones (establecer datos) como campos a copiar
.- En cada acción de copiar se le indica:
.--- el campo (cuadro de texto) de destino
.--- con la función Dlookup se obtendrá el dato (que utilizará el referente recién guardado como condición)

La función DLookup podrá tomar un dato de cualquier tabla, se compone de tres partes:
.- el nombre del campo de la tabla (primer parámetro)
.- el nombre de la tabla (segundo parámetro)
.- y como tercero: la condición (una igualdad entre la referencia en la tabla y la referencia en el formulario).

Con esta metodología (muy similar a la que se podría utilizar con VBA) se logra el resultado que se precisa
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
sin imagen de perfil
Val: 75
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Payan (28 intervenciones) el 14/05/2021 13:39:21
Gracias por el interes mostrado, pq me estoy volviendo loca con este tema, es lo unico que me queda por solucionar para q la base de datos funcione como necesito!

Entiendo que la funcion DLookup tendria que hacerla en codigo,no? y que ya no necesitaria la macro establecer valor

Perdona por ser tan torpe, no manejo muy bien access

=DLookup ("[FECHA AVANCE]","[SEGUIMIENTOS PENDIENTES]","[REF SINIESTRO]=""& Forms![SEGUIMIENTOS PENDIENTES]![REF SINIESTRO])

Intente esto pero me da error, que frustante es!

FECHA AVANCE: NOMBRE DEL CAMPO DE LA TABLA
SEGUIMIENTOS PENDIENTES: NOMBRE DE LA TABLA
REF SINIESTRO: CLAVE PRINCIPAL Y VALOR QUE METO PARA QUE ME DE LOS OTROS DATOS YA INTRODUCIDOS EN SUS TABLAS


Un saludo y muchas gracias
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

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Anonimo (3316 intervenciones) el 14/05/2021 23:04:50
Esta sintaxis contiene un error pero aun sin tenerlo es difícil que funcione en ese contexto.

.- original:
1
2
= DLookup ("[FECHA AVANCE]","[SEGUIMIENTOS PENDIENTES]","[REF SINIESTRO]=""& Forms![SEGUIMIENTOS PENDIENTES]![REF SINIESTRO])

.- rectificado:
1
= DLookup ("[FECHA AVANCE]","[SEGUIMIENTOS PENDIENTES]","[REF SINIESTRO]=" & Forms![SEGUIMIENTOS PENDIENTES]![REF SINIESTRO])

Si el destino esta en la misma ubicación que la referencia así también funcionara:
1
= DLookup ("[FECHA AVANCE]","[SEGUIMIENTOS PENDIENTES]","[REF SINIESTRO]=" & [REF SINIESTRO])

Si La referencia y el destino están en el mismo formulario ... Access buscara el dato en primer lugar en el propio formulario (y como es 'el mismo') lo encontrara sin mayor problema.

Problemas:
Asignarle una función o calculo a un cuadro de texto lo 'modifica' a cuadro de texto calculado, (muestra el valor no lo guarda)

Si se pretende crear un nuevo registro, el dato [ref siniestro] estará en blanco a la espera de que el operador lo introduzca ¿es correcto?....

Las funciones asignadas a los objetos se ejecutan cuando se inicia/carga el registro (en ese momento 'aun' no existe la referencia , esta en blanco) por lo que ese 'valor NULL' provocara un error.


Una solución:
Es por ello que se ha de utilizar la macro 'establecer valor' y ejecutarla cuando el dato de referencia no sea un NULL (una opción: evento 'después de actualizar').

Al ser el origen de datos -del cuadro de texto- un campo del origen de datos -del formulario- se mostrara al asignarlo y al validarlo (guardar el registro) se guardara en la tabla.
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
sin imagen de perfil
Val: 75
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Payan (28 intervenciones) el 24/05/2021 10:57:40
Gracias por la respuesta, es q me dieron vacaciones y volvi hoy.

Ahora lo probare...

Una duda, al estableces valor al actualizar en REF SINIESTRO seria asi?

ELEMENTO: [Formularios]![SEGUIMIENTOS PENDIENTES]![REF SINIESTRO]
EXPRESION: [REF SINIESTRO]
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
sin imagen de perfil
Val: 75
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Payan (28 intervenciones) el 24/05/2021 11:37:55
No me funciona!!

No se si sera la macro al establecer valor o la funcion DLookup!
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

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Anonimo (3316 intervenciones) el 24/05/2021 16:20:47
En la ventana de inmediato
[pestaña 'herramientas de la base de datos' ==> 'Visual Basic' ==> pestaña 'Ver' ==> 'Ventana de inmediato']

Si se escribe esto y esta abierto el formulario + existe un valor en el cuadro de texto y se pulsa 'ENTER' ¿que muestra el mensaje?:
1
? MsgBox  DLookup ("[FECHA AVANCE]","[SEGUIMIENTOS PENDIENTES]","[REF SINIESTRO]=" & Forms![SEGUIMIENTOS PENDIENTES]![REF SINIESTRO])
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
sin imagen de perfil
Val: 75
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Payan (28 intervenciones) el 24/05/2021 16:46:07
Microsoft access no encuenra el campo SEGUIMIENTOS PENDIENTES al que se hace referencia en la expresion.
Es posible que haya escrito mal el nombre del campo o que el campo haya cambiado de nombre o haya sido eliminado.

Es que SEGUIMIENTOS PENDIENTES es el nombre del formulario, no un campo

Y la funcion DLookup es en despues de actualizar ?

Es q creo q la macro de establecer valor en ref siniestro despues de actualizar tampoco la estoy haciendo bien

Pongo esto:
Elemento: [Formularios]![SEGIMIENTOS PENDIENTES]![REF SINIESTRO]
Expresion: [REF SINIESTRO]

Y EN VB PONGO EL DLookup que me dijiste, probe con los dos

Muchas gracias, de verdad que te agradezco mucho tu ayuda
un saludo
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

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Anonimo (3316 intervenciones) el 24/05/2021 17:18:13
En un mensaje anterior respondi esto:
------------------------------
La función DLookup podrá tomar un dato de cualquier tabla, se compone de tres partes:
.- el nombre del campo de la tabla (primer parámetro)
.- el nombre de la tabla (segundo parámetro)
.- y como tercero: la condición (una igualdad entre la referencia en la tabla y la referencia en el formulario).
------------------------------

DLookup ( [primer parámetro], [segundo parámetro], opcional[tercer parámetro])

Si la tabla en la que esta el dato a obtener se llama de otra forma (y no como el formulario), se ha de utilizar su nombre real para que la encuentre.
Cuando se escriba la sintaxis correcta -en la ventana de inmediato- (los nombres reales de campos/tablas/formularios ...) y se obtenga lo que busca, es el momento de dar el siguiente paso: asignárselo a quien corresponda.

Por cierto: si se utiliza un DLookup como origen de datos para un cuadro de texto de un formulario, ese dato se mostrara pero no se guardara en ningún sitio, se convierte en un cuadro de texto calculado (independiente) y no tendrá relación con la tabla que lo debería almacenar.
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
sin imagen de perfil
Val: 75
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Payan (28 intervenciones) el 24/05/2021 18:21:22
Gracias y perdona por ser tan torpe! Es la primera vez q hago una base de datos en acces.

Lo intentare cambiando las cosas y el establecer valor intentare buscar informacion.

Lo mismo el problema es que la tabla y el formulario se llaman igual, le cambiare el nombre y lo probare.

Gracias por tu ayuda!
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
sin imagen de perfil
Val: 75
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Payan (28 intervenciones) el 24/05/2021 19:02:50
De verdad, sere muy torpe, pero pongo la funcion como me dijiste y se queda el texto en rojo en vb!

Hay algun error y ni idea de q puede ser y eso que lo pongo como me explicaste
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

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Anonimo (3316 intervenciones) el 24/05/2021 22:40:05
En la 'ventana de inmediato' no se colorea el texto, lo que me hace suponer que se esta saltando algún paso.

La ventana de inmediato es una de las ayudas que Access pone a disposición del usuario para permitirle ejecutar -en tiempo real- fragmentos de código o expresiones para verificar que son correctos.

En un mensaje anterior intente (intente porque al parecer no hubo éxito) dar indicaciones para llegar a ella desde un formulario en modo diseño (el que se supone se esta creando o modificando)

Las funciones de dominio (DLookup, DMax, DMin ....) comparten la sintaxis, pon interés en dominar a una de ellas y obtendrás el dominio de todas, en principio son muy simples y como tales funciones trabajan en formularios, consultas macros y VBA.

Lo único que puede 'complicar' es la sintaxis, por ejemplo el separador de argumentos (separador de Listas) en VBA (y para todos los idiomas) trabaja en ingles y utiliza la coma, 'fuera' de VBA utiliza los recursos locales y (en castellano) la coma se utiliza como separador decimal (en américa el punto) , por lo que se utiliza el punto y coma en su lugar.

Dos reglas simples:

.... Separador de listas ........
En VBA siempre es la coma simple (,)
Fuera de VBA el de la configuración regional de Windows -que en castellano- es el punto y coma (;)

.... Separador decimal ........
En VBA siempre es el punto (.)
Fuera de VBA el de la configuración regional de Windows -que en castellano- es la coma simple (,)

Con esas dos reglas se puede traducir una expresión para utilizarla en VBA y fuera de VBA ....
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
sin imagen de perfil
Val: 75
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Payan (28 intervenciones) el 25/05/2021 10:49:21
Vale, muchas gracias por el interés y la ayuda!

Revisare bien el código que me facilitaste.

Sobre la macro establecer valor tampoco se si la estoy usando bien como te comente en otro mensaje, quizás el problema sea ese!

Un saludo
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

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Anonimo (3316 intervenciones) el 25/05/2021 13:39:20
La macro vendrá detrás, si no logras obtener el dato a copiar, el resto carece de sentido.
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
sin imagen de perfil
Val: 75
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Payan (28 intervenciones) el 25/05/2021 15:18:23
Gracias!

Ya se donde esta el error, yo ponía el código en FECHA AVANCE, en vez de en REF SINIESTRO!

[FECHA AVANCE] = DLookup("[FECHA AVANCE]", "[SEGUIMIENTOS PENDIENTES]", "[REF SINIESTRO]=" & [REF SINIESTRO])

Así si funciona!!

Ahora otra pregunta tonta... para que vale la macro en REF SINIESTRO "establecer valor"?

Lo único que el cursor se queda en FECHA AVANCE, al actualizar no se pasa al siguiente, le tengo que dar yo... imagino q si pongo GoToControl lo hara...

Muchas gracias por todo, un saludo!
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
sin imagen de perfil
Val: 75
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Payan (28 intervenciones) el 25/05/2021 16:05:42
Siento ser tan pesada....

Quizás el establecer valor es para que se me pueda copiar desde el formulario a la tabla los valores nuevos que introduzco?

Porque no lo hace me dice que se duplican los datos... estoy por darme por vencida!!
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

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Anonimo (3316 intervenciones) el 25/05/2021 21:40:38
Hay mas de una forma de copiar valores, los mas utilizados son:

.- Asignación directa
[FECHA AVANCE] = DLookup("[FECHA AVANCE]", "[SEGUIMIENTOS PENDIENTES]", "[REF SINIESTRO]=" & [REF SINIESTRO])

Una macro 'establecer valor'

En la que el destino seria : [FECHA AVANCE]
Y el origen (dato) : DLookup("[FECHA AVANCE]", "[SEGUIMIENTOS PENDIENTES]", "[REF SINIESTRO]=" & [REF SINIESTRO])

En el propio formulario (en el que son accesibles el destino y la referencia) lo correcto con VBA seria así:

Me.[FECHA AVANCE] = DLookup("[FECHA AVANCE]", "[SEGUIMIENTOS PENDIENTES]", "[REF SINIESTRO]=" & Me.[REF SINIESTRO])

El 'Me' le indica a Access que los objetos 'FECHA AVANCE' y 'REF SINIESTRO' pertenecen al formulario actual

Mostrando solo una línea no se aportan datos para saber que se hace mal.

Los datos que se introducen (registro nuevo) o se modifican (registro guardado) se guardaran en las tablas cuando se guarde el registro, ninguno de los métodos aquí mencionados introducen datos en las tablas de forma directa.

(Para eso se precisa una consulta de anexión y es otro entorno que nada tiene que ver: crear registros sin utilizar formularios o con formularios desconectados).

Has logrado obtener ese valor, ¿has verificado que puedes obtener el resto que se desea copiar? ...

Cuando lo tengas claro repasa el mensaje de este mismo hilo : Publicado por Anonimo el 14/05/2021 12:56:43

Y dando por supuesto que se utilizara 'lo que funciono' cambiar la macro -ahora excluida- por la expresión que ha funcionado y (adecuando el destino y el origen) se repite para todos aquellos que se necesiten copiar, algo como:

.....
1
2
3
Me.[FECHA AVANCE] = DLookup("[FECHA AVANCE]", "[SEGUIMIENTOS PENDIENTES]", "[REF SINIESTRO]=" & Me.[REF SINIESTRO])
Me.[Nombre] = DLookup("[Nombre]", "[SEGUIMIENTOS PENDIENTES]", "[REF SINIESTRO]=" & Me.[REF SINIESTRO])
Me.[Direccion] = DLookup("[Direccion]", "[SEGUIMIENTOS PENDIENTES]", "[REF SINIESTRO]=" & Me.[REF SINIESTRO])
......
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
sin imagen de perfil
Val: 75
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Payan (28 intervenciones) el 26/05/2021 11:31:20
Una vez mas gracias por tu respuesta y tu implicación en este tema!

Yo puse la expresión directamente en VBA, lo que entiendo de tu ultimo mensaje es que puedo poner esa expresión en la macro establecer valor en vez de en VBA... y haría lo mismo?
Lo intente con macro establecer valor pero no se como hacerlo:
ELEMENTO: [FECHA AVANCE]
EXPRESION: DLookup("[FECHA AVANCE]", "[SEGUIMIENTOS PENDIENTES]", "[REF SINIESTRO]=" & [REF SINIESTRO])
Me dice que no es correcto!

Los registros se guardan bien en la tabla con ese formulario, tengo un botón de guardar registro y hasta ahí funciona bien!

Ya añadí el "Me." y funciona bien, lo único que el cursor se queda en FECHA AVANCE y tengo que darle a enter para pasar al siguiente campo …

El problema me viene cuando en otra tabla la cual tiene clave principal, en la cual use también la función DLookup para que me devuelva unos datos, cuando quiero ingresar un dato nuevo y guardar me dice que no puedo pq se duplican los datos! Entiendo que es por tener clave principal en REF SINIESTRO, ya que en las otras dos tablas a REF SINIESTRO no le tengo puesta clave principal.

Y ya abusando de tu confianza me gustaría saber si hay alguna forma de que no se me dupliquen los datos en las tablas, vi algunos tutoriales de como quitar los duplicados con consultas o en las tablas poniendo (sin duplicados), pero como yo necesito que me devuelva datos no puedo ponerlos (sin duplicados) pq entonces no me los devuelve...

Un saludo!
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

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Anonimo (3316 intervenciones) el 26/05/2021 23:50:16
Aclarando detalles.

Las macros son la opción para cuando no se domina VBA, utilizan asistentes y son menos potentes que el VBA y la alternativa para los primeros pasitos en la programación, se supone que están diseñadas para ser utilizadas con mínimos conocimientos (pero hay que intentar entenderlas).

SI funciona en VBA ... adiós a las macros, el VBA es la opción mas completa.

No tengo claro porque se queda en un cuadro de texto que debería tener desactivada la opción de tabulación ya que se le asigna un valor de forma directa ¿si ya lo tiene a que viene 'pasar' por el? ... se le enviara el foco (con el ratón por ejemplo) si rl valor que se le asigno no es adecuado (y si no era adecuado ....¿porque se le asigna?).

Yo desactivaría la opción de tabulación en todos los cuadros de texto a los que se le asigna valor, esto es:
Se introduce un dato en [REF SINIESTRO] y en su evento 'después de actualizar' (en/con VBA) se asignan los valores a copiar en los cuadros de texto y se les puede ignorar (se desactiva su tabulación) para que Access salte al siguiente cuadro de texto.

Si hay necesidad de que se siga un orden al introducir datos, se puede reasignar el orden en el propio formulario, es una de sus opciones.

El botón guardar: Access lo hace de forma automática, no veo que ventaja representa un botón especifico y que se permita duplicar datos depende de que ese campo de la tabla este indexado con/sin duplicados (normalmente los que se utilizan como índice de la tabla no lo permiten en esa tabla).
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
sin imagen de perfil
Val: 75
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Payan (28 intervenciones) el 27/05/2021 12:09:03
Hola, la verdad que gracias a tu ayuda funciona en vba, muchas gracias!

Lo de tabular no puedo desactivarlo pq no en todos los casos recibe datos ese cuadro de texto, hay veces q aun no lo tiene y tengo que meterlo a mano, intente con GoToControl pero se lo salta siempre y eso tampoco me interesa! Creo que con un condicional se podría hacer pero tampoco sabría y no quiero abusar de tu confianza....

Y con respecto a la duplicidad de los datos intente quitar la clave principal en esa tabla, pero entonces las relaciones entre tablas cambia pq no seria de uno a varios y entonces no me valdría para el tipo de base de datos que necesito.
Al igual que si quito la duplicidad en las otras dos tablas me pasaría lo mismo, no me deja volver a introducir nuevos datos cuando lo necesitase.

Creo q este tema de la duplicidad de datos es mas complicado que crear el anterior código de vba
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
sin imagen de perfil
Val: 75
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Payan (28 intervenciones) el 27/05/2021 16:36:41
Si es que creo q quiero hacer cosas q superan a access!

Porque yo en mi base de datos, donde hay 3 tablas:
[EXPEDIENTES],[AVISOS] y [SEGUIMIENTOS PENDIENTES], la única clave principal esta en la tabla EXPEDIENTES, donde la clave es REF SINIESTRO y donde están relacionadas las tablas.
De las cuales tengo 3 formularios:
[F EXPEDIENTES],[F AVISOS] y [F SEGUIMIENTOS PENDIENTES]

Mi idea es que conforme he introducido datos se vayan guardando en sus respectivas tablas y cuando necesite introducir datos nuevos me salgan los ya introducidos anteriormente y poder guardar sin duplicarlos en las tablas!
No se si me exprese bien y con claridad....

El problema que tengo es q si pongo sin duplicados cuando meto datos nuevos no me deja guardar con la información nueva, pq gracias a tu ayuda si me busca e introduce en los formularios los datos ya insertados pero no puedo guardar los nuevos sin que se dupliquen!

Y como no se mucho de vba no se si habria alguna manera de hacer un codigo para eso...

Gracias una vez mas por tu ayuda, un saludo!
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

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Anonimo (3316 intervenciones) el 28/05/2021 00:44:12
Si es que creo q quiero hacer cosas q superan a access!

Yo creo que de momento quien va delante y con bastante diferencia es Access.

Si Access dice que duplicas, es que duplicas y la culpa no es de Access (el solo informa de que ya tiene ese dato).

Sospecho que algo tendrá que ver ese botón guardar (que solo quien lo creo sabe que hace y como lo hace), yo evitaría utilizarlo y ver si al cerrar el formulario (o al cambiar a otro registro) el nuevo registro aparece en la tabla (que es la funcionalidad por defecto de Access).

Y se mantiene la opción del botón y se guarda el registro con el, habrá que 'limpiar' el formulario para que no intente guardar lo que ya esta guardado, si acaso ... actualizar si hay algo posterior y diferente que merezca la pena conservar.

Si, las relaciones entre tablas tiene ventajas e inconvenientes, pero son el esqueleto que soportara la aplicación, cuanto mejor este diseñadas mas fácil será manejarlas. .... por cierto ¿tiene una planificación de la base o la creas sobre la marcha?

Planificarla reporta la ventaja de que 'se cocina' con la vista puesta en el resultado final y ello la hace mas fuerte.
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
sin imagen de perfil
Val: 75
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Payan (28 intervenciones) el 28/05/2021 11:09:59
Hola, de nuevo!

Si, la base de datos la planifique antes de empezar sabiendo lo que necesitaba q hiciese, evidentemente es la primera vez que uso access.

El botón guardar solo hace eso guardar los registros que voy introduciendo en los formularios, pq no estaba segura de q access lo hiciera solo y siempre, es información importante la q se quiere guardar en esa base de datos y por eso lo cree, para asegurar q se le da y guarda cada registro que se inserta!

Como te comente en un mensaje anterior en uno de los formularios no me deja seguir introduciendo datos ya que tiene clave principal, y no puedo quitarla por las relaciones, en las demás se duplican los datos cada vez que introduzco información nueva y simplemente me gustaría saber si se puede crear un código o macro para q la reescriba en vez de duplicarla...

Gracias a tu ayuda conseguí q una vez hay ciertos datos ya introducidos al meter la clave principal (REF SINIESTRO) me devuelva esos valores para seguir introduciendo otros, excepto donde esta la clave principal y que se duplican!

A esto que escribiste:
Y se mantiene la opción del botón y se guarda el registro con el, habrá que 'limpiar' el formulario para que no intente guardar lo que ya esta guardado, si acaso ... actualizar si hay algo posterior y diferente que merezca la pena conservar.

Se puede hacer con el botón guardar? La verdad que me vendría muy bien q me explicases como se puede hacer pq resolvería muchas cosas...

Gracias y un saludo!
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

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Anonimo (3316 intervenciones) el 28/05/2021 12:28:24
Lo que sobra es ese botón, que solo interfiere en el funcionamiento normal de la aplicación,

Cuando se toca el tema de 'guardar los datos' por posibles perdidas, se habla de copias de seguridad de toda la base, no de guardar un registro a golpe de botón (que puede dar lugar a registros incompletos)..

Lo de trabajar con la metodología de 'formularios desconectados' (utilizarlos como simple plantilla para introducir datos) es mas trabajo y requiere mas experiencia, pues consiste en 'replicar' lo que ya hace Access por defecto y solo seria de utilidad en entornos muy críticos, algo que sospecho no es la situación actual.

Por defecto Access guarda el registro al pasar al siguiente, al salir del formulario o cuando (en el mismo formulario) se cambia a un subformulario. Solo exige que: los campos que estén marcados como requeridos tengan valores correctos.

Al respecto de duplicaciones...
Un ID será único en la tabla que lo genera, en el resto de las tablas (en las que ese ID se utilice) podrá repetirse tantas veces como se desee.

SI ese dato (el que se repite en tabla externa) es único ... debería estar en la tabla que tiene ese ID (como elemento único).

Quizás deberías replantear el diseño (y relaciones) de esa aplicación, algo no es coherente.
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
sin imagen de perfil
Val: 75
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Payan (28 intervenciones) el 31/05/2021 11:46:54
Hola! Pero si quito [REF SINIESTRO] en las otras dos tablas, como las relaciono?

Lo de trabajar con la metodología de 'formularios desconectados' (utilizarlos como simple plantilla para introducir datos) es mas trabajo y requiere mas experiencia, pues consiste en 'replicar' lo que ya hace Access por defecto y solo seria de utilidad en entornos muy críticos, algo que sospecho no es la situación actual.

En mi caso los formularios son para eso, para facilitar la entrada de datos y no tener que estar rellenándolos en las tablas, por eso el que me pudiese mostrar los datos que ya he introducido y poder seguir completando cuando sean necesarios y sin duplicados, ese es el propósito de la base de datos.

Un saludo
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

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Anonimo (3316 intervenciones) el 31/05/2021 15:05:19
De forma elemental y sencilla (aunque antes debería conocerse lo básico en conjuntos relacionas y las reglas mínimas que deberían existir y respetar).

Supongamos un conjunto de personas que conformaran una tabla de clientes/usuarios/.... otros.

Para que solo existan una vez en ese conjunto se utiliza un ID, PK o como se le quiera designar y (si las personas en cuestión) son responsables (mayores de edad) tendrán un ‘ID’: el DNI (que si bien puede haber y hay errores, en cuanto se detectan: se corrigen de forma inmediata).

Ese ID/PK/DNI será UNICO en la tabla que contiene el resto de los datos -únicos- que definen a esa persona, en el resto de tablas.... según la necesidad, por ejemplo:

Hay una tabla en la que figuran las nóminas de la empresa, uno de los datos será el DNI (en base a él se obtiene nombre.... etc.) y en ella ese DNI se repetirá tantas veces como meses o ciclos cumpliese, esto es:

.- EL DNI se repetirá tantas veces como se precise.

Lo que define como único a ese registro -en la tabla nominas- será una combinación de campos -que en sí mismos se podrán repetir- pero su combinación será única, por ejemplo DNI + Fecha y -opcionalmente- se generara un ID único para cada combinación.

En esa tabla -nominas- se repetirán los DNI y se repetirán las fechas, pero solo habrá un registro que cumpla la condición de tener el mismo DNI y la misma fecha (esa condición se define con un INDICE).

En una tabla de ventas o similar, habrá un ID para la venta -el número de venta normalmente- en esa tabla se le define como UNICO y en una tabla auxiliar -detalles de ventas- ese ID se repite para cada producto vendido y se le puede crear una regla (índice) que impida repetir al mismo producto en la misma venta (la repetición ==> en el campo cantidad).

Sospecho que las tablas no están 'normalizadas' (no cumplen las reglas mínimas, las básicas = tres pero... son cinco) son imprescindibles las tres básicas, para cumplir las cinco hay que planificar muy bien pues algunas son incompatibles por naturaleza si se aplican directamente.

En una aplicación que trabaja en modo local y solo con Access, los formularios son 'autosuficientes' y los botones que emulan a funciones básicas (que no se pueden eliminar, lo exige su origen de datos) son innecesarios e incluso pueden ser incompatibles.

En concreto y para finalizar:
.- si se introduce un registro directamente en la tabla (sin formularios o asimilados) ¿Dónde se le pone el botón guardar y cuando 'se guarda' ese registro? ... eso es lo que heredan los formularios de sus orígenes de datos.
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
sin imagen de perfil
Val: 75
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Payan (28 intervenciones) el 31/05/2021 18:28:30
Puff... q lio y q perdida estoy en este tema!

Seguramente lleves razón en que las tablas no están bien hechas ni las relaciones entre ellas.

Pensé que tenia que poner la clave principal en todas ellas para hacer las relaciones, es decir, [REF SINIESTRO] y solo ponerla como clave principal en una tabla, lo hice así pensando en q estuvieran relacionadas para que me devolviese los datos ya insertados en los formularios, aunque viéndolo ahora esos datos se les llama con la función DLookup y hace lo mismo!

El tema es que hice varios intentos modificando las tablas y las relaciones y sigo sin dar con la tecla...

Tabla EXPEDIENTES: REF SINIESTRO,REF GABINETE,FECHA ENTRADA,PERITO,DIAS ABIERTO,FECHA CIERRE,HOY.
Donde REF SINIESTRO es la clave principal, perito es una lista, días abierto es un campo calculado(hoy-fecha entrada) y hoy(=Fecha())

Tabla AVISOS: REF SINIESTRO,FECHA AVISO,TITULO,FECHA CONTESTACION,SEGUIMIENTO,AVISO REBAJADO, CONTENIDO,CONTESTACION.
Esta tabla no tiene clave principal, seguimiento y aviso rebajado son campos si/no

Tabla SEGUIMIENTOS: REF SINIESTRO, FECHA AVANCE,AVANCE,DIAS AVANCE,SEGUIMIENTO, SIN SEGUIMIENTO.
Esta tampoco tiene clave principal, avance(hoy-fecha entrada), días avance(fecha avance-fecha entrada), seguimiento es campo fecha y son 1,2,3,4,5 y los días sin seguimiento es calculado

Y están relacionadas por REF SINIESTRO como uno a varios.

Asi es como tengo el asunto
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

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Anonimo (3316 intervenciones) el 01/06/2021 00:50:56
Una de las propiedades que se le suele adjudicar a los campos (o que estos 'permiten') es la de indexación, que a su vez puede tener dos alternativas: con duplicados y sin duplicados.

Si se copia un campo de una tabla a otra (ambas en modo diseño), la copia es tan fiel que copia sus propiedades -entre ellas la indexación- y la indexación sin duplicados es condición indispensable para ser ID, pero para ser 'sub-tabla' si se indexa ha de ser con duplicados (o ese campo complicara las cosas).
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
sin imagen de perfil
Val: 75
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Payan (28 intervenciones) el 01/06/2021 16:24:57
Así lo hice, donde esta la clave principal esta sin duplicados y en las demás deben estar con duplicado para que me devuelva los datos....

De eso si me informe, el problema viene cuando se duplica todo y no es lo que me interesa, por eso estuve intentando mirar si por código vba se podía resolver ese problema... pero no encontré nada!

Algo en plan que modifique o reescriba los datos ya existentes con los nuevos!

Un saludo y gracias por tu ayuda
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

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Anonimo (3316 intervenciones) el 01/06/2021 23:02:49
En mi opinión (y aquí finalizo).

Lo probable es que de forma externa (a golpe de botón) se este guardando el registro y -al salir del formulario- como no se han seguido los pasos correctos (Access tiene su metodología y no la que se le quiera imponer) el 'aun nuevo registro' al auto-guardarse provoca conflictos.

La solución esta en hacer las cosas como Access considera que deben hacerse y toda la experiencia de otros entornos, utilizarla en esos entornos y no intentar imponerla en los -de momento- poco conocidos.
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
sin imagen de perfil
Val: 75
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Payan (28 intervenciones) el 02/06/2021 13:37:27
Gracias por toda tu ayuda!

El problema no radica en el botón guardar (lo quite de los tres formularios) ni en como están los campos de las tablas creadas, lo comprobé!

Siguen duplicándose los datos...

Un saludo y gracias!
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

necesitaria que se copiase un dato de una tabla automaticamente a un campo de un formulario

Publicado por Anonimo (3316 intervenciones) el 02/06/2021 15:08:49
Iniciar una nueva aplicación y copiar a ella lo que funciona bien

Todo lo que presente algún problemas se vuelve a crear (normalmente y aplicando la experiencia adquirida, suele ser sencillo mejorarlo)

En muchas ocasiones los restos de experimentos quedan escondidos y provocan fallos sin motivo aparente.

Con los datos aportados a lo largo de este hilo no se pueden extraer conclusiones, pues solo se trabaja con supuestos (lo que lo hace poco efectivo y se dilapida mucho esfuerzo).
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