Concatenar datos de 2 campos en un tercero sin Query

Quisiera plantearte una cuestión a ver si me puedes ayudar:
Necesito concatenar la información de 2 campos de una tabla en un tercer campo, ej: [Nombre Empresa]+[Año Fiscal], de modo que en cada registro me devuelva lo que corresponda a la unión de esos 2 campos de ese registro.
Por el momento lo tengo hecho con una Query, pero tengo que correr la Query cada vez que actualizo la tabla con nuevos datos bajados de otra bbdd y necesito que este proceso se genere dentro de la tabla cada vez que se introducen nuevos datos para agilizar el proceso. La idea era poner como default value el valor de ambos campos con un &, un AND, +...(Ej:[NombreEmpresa]+[AñoFiscal]), pero no me deja. He intentado por medio de una función, pero no encuentro la apropiada.

1 Respuesta

Respuesta
1
No se puede utilizar en el diseño de tabla el default value una referencia como quieres, puedes hacerlo de dos maneras:
a) Mediante una consulta de actualización, actualizando ese campo anexando los dos con el operador &, pero te sucede lo que explicas, que has de hacerlo manualmente. Lo que puedes hacer es automatizarlo en el formulario donde muestres los datos, mediante el evento current con algo más o menos así:
Dim strSQL as string
strSQL = "UPDATE ...." (el SQL de tu consulta de actualización)
Docmd.setwarnings false
docmd.runsql strSQL
Docmd. Setwarning true
b) mediante la unión de los valores de los dos controles (generalmente textbox) Empresa y AñoFiscal. Primero lo actualizas para todo, y a partir de ese momento en el formulario, generalmente en el evento update del segundo (o mejor de los dos, controlando los valores como te explico más adelante) haces que lo cree en el textbox del campo concatenado:
me.CampoConcatenado = me.Empresa & me.añofiscal
depende de la flexibilidad que le des a los usuarios en la manipulación de los datos deberás poner control sonbre los valores que existen
por ejemplo para evitar errores al querer leer un nulo para concatenar:
if vartype(me.empresa)=vbnull then
msgbox "....",vbokonly,"El nombre de la empresa no puede quedar en blanco"
end if
Espero que te sea de ayuda.
Otra opción, quizá más para salir del paso es el siguiente:
Tablas y consultas de selección son casi lo mismo para Access, de hecho no puedes tener una consulta con el nombre de una tabla
Tienes la tabla "Empresas" sólo con los dos campos
La cambias el nombre a "tblEmpresas"
Haces una consulta que se llame "Empresas" y aquí le pones el campo calculado concatenado los dos campos, simplemente añade el campo y no le pongas nada más em group by
A partir de aquí utiliza la consulta "Empresas" como si fuese tu tabla original, con la diferencia de que el campo calculado será siempre calculado en cualquier momento para todos los registros sin necesidad de actualizar nada
Y a partir de aquí depende de ti si decides utilizar siempre ese campo calculado como realmente calculado, no te será muy útil si utilizas ese campo calculado como parte de las relaciones, al tratarse de una consulta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas