Access - Modificar propiedad de campo

 
Vista:

Modificar propiedad de campo

Publicado por Pedro (3 intervenciones) el 14/01/2003 19:27:51
¿Se puede modificar en tiempo de ejecución la propiedad Valor predeterminado de un campo? El problema es que al importar un fichero de texto a una tabla, además quiero que en cada uno de los registro importados, en un campo aparte previamente definido en la tabla, se copie un valor que se encuentra en un control del formulario desde el cual se invoca al procedimiento de importación, y que no figura en el fichero de texto. Muchas gracias a todos de antemano.
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
Imágen de perfil de Alejandro

Modificar propiedad de campo

Publicado por Alejandro (4142 intervenciones) el 26/04/2023 00:19:58
Sí, es posible modificar la propiedad Valor predeterminado de un campo en tiempo de ejecución mediante código VBA en Access. Puedes hacerlo utilizando la función DDL (Data Definition Language) de Access.

A continuación se muestra un ejemplo de cómo modificar la propiedad Valor predeterminado de un campo llamado "Campo1" en una tabla llamada "Tabla1":

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dim db As DAO.Database
Dim tdf As DAO.TableDef
Dim fld As DAO.Field
 
Set db = CurrentDb
Set tdf = db.TableDefs("Tabla1")
Set fld = tdf.Fields("Campo1")
 
' Modificar la propiedad Valor predeterminado del campo
fld.DefaultValue = "Nuevo valor predeterminado"
 
' Guardar los cambios en la definición de la tabla
tdf.Fields.Refresh
Set fld = Nothing
Set tdf = Nothing
Set db = Nothing

En el ejemplo anterior, primero se establecen las variables para la base de datos, la tabla y el campo que se van a modificar. Luego se modifica la propiedad Valor predeterminado del campo y se guardan los cambios en la definición de la tabla.

Para copiar un valor de un control del formulario a un campo de la tabla al importar un fichero de texto, puedes utilizar el evento BeforeInsert del formulario para establecer el valor del campo antes de agregar un nuevo registro a la tabla.

Por ejemplo, supongamos que tienes un control de formulario llamado "Control1" y un campo en la tabla llamado "Campo2" que quieres llenar con el valor de "Control1" al importar un fichero de texto. Puedes utilizar el siguiente código en el evento BeforeInsert del formulario:

1
2
3
Private Sub Form_BeforeInsert(Cancel As Integer)
    Me!Campo2 = Me!Control1
End Sub

El código anterior establece el valor del campo "Campo2" en el valor de "Control1" antes de agregar un nuevo registro a la tabla. De esta manera, el valor de "Control1" se copiará en el campo "Campo2" para cada registro importado.
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