Asignar un valor a un campo y que lo repita hasta que el usuario cambie ese valor manualmente

Es usted muy amable. Siempre ayudando a quienes no contamos con suficientes conocimientos. Mi problema es el siguiente. Tengo una tabla relacionada con otras tres. Quiero en el formulario que el usuario fije un valor y añada varios registros, que cuando desee manualmente cambie y agregue los registros correspondientes.

Ejemplo: entidad: santiago, Base: Base 1, área: informática... Estos datos quiero fijarlos y comenzar a llenar el resto de los campos y añadir un botón para cambiar área.

2 respuestas

Respuesta
1

Puedes hacerlo de muchas formas. Por ejemplo, en esos campos que van a aparecer en el formulario puedes ponerle en sus propiedades-datos-valor predeterminado el que quieras que coja. Luego en el botón en sus propiedades-eventos-Al hacer clic, sólo tendrías que poner, por ejemplo

Area=""

Edad=""

Con lo que al pulsarlo te dejaría el control Área y el control Edad en blanco.

Lo del valor predeterminado también lo podrías hacer con código en el evento Al activar el registro del formulario

Area="Informática"

o también

Area.defaultvalue="Informática"

Y lo mismo que te dije antes en el botón.

Por cierto, para adjuntar imágenes pulsa el botón señalado con la flecha

Muchas gracias por responder. Pero no me expliqué correctamente. ¿Podría enviarle las imágenes por correo?. No veo la opción que me indica.

Mi correo es [email protected]

Si las mandas, en el asunto del mensaje pon tu alias Yeni, ya que si no sé quien me escribe ni los abro.

Respuesta
1

No puede estar editando las propiedades de los campos cada vez que cambie los valores constantes. Le preparé este ejemplo, consta de:

1 Tabla

2 Formularios

1 Módulo de VBA

¿Por qué el módulo?

Porque en este defino las variables públicas para almacenar el valor del texto fijo

Formulario para recoger los valores fijos

Los valores de estos 3 campos los guardo en las variables públicas definidas a nivel de módulo.

Código de este formulario:

Programo el evento Al abrir. Esto con el fin de llenar los campos con los valores de las variables si existen datos, en caso contrario estarán vacíos. No obstante, esto es validado al cargar el formulario que toma los valores.

Private Sub Form_Open(Cancel As Integer)
     Me.ctlEntidad = strEntidad
     Me.ctlBase = strBase
     Me.ctlArea = strArea
End Sub

En este formulario programo los eventos Después de Actualizar de cada uno de los campos, esto es:

Private Sub ctlArea_AfterUpdate()
 If Me.ctlArea <> "" Then
  strArea = Me.ctlArea
 End If
End Sub
Private Sub ctlBase_AfterUpdate()
 If Me.ctlBase <> "" Then
  strBase = Me.ctlBase
 End If
End Sub
Private Sub ctlEntidad_AfterUpdate()
 If Me.ctlEntidad <> "" Then
  strEntidad = Me.ctlEntidad
 End If
End Sub

TABLA Y FORMULARIO PARA EDITAR O INGRESAR NUEVOS REGISTROS

Observe que estoy adicionando el registro id=26 y tiene los mismos datos que el anterior, no obstante se pueden editar. Cuando doy clic en Agregar o me muevo a un registro nuevo automáticamente se fijan los valores de las variables públicas

CÓDIGO DE ESTE FORMULARIO

Evento al Activar Registro:

Private Sub Form_Current()
If Me.NewRecord Then
 If strEntidad <> "" Or strBase <> "" Or strArea <> "" Then
     Me.entidad = strEntidad
     Me.base = strBase
     Me.area = strArea
 End If
End If
End Sub

Evento Al abrir:

Private Sub Form_Open(Cancel As Integer)
 If strEntidad = "" Or strBase = "" Or strArea = "" Then
    MsgBox "No ha definido los campos fijos", vbInformation, "Cuidado"
    DoCmd.OpenForm "frmDatosFijos", acNormal
    DoCmd.Close acForm, Me.Name
 End If
End Sub

Observe, verifico que no falte ninguno de los valores de las variables públicas e informo, activo el formulario donde se definen los valores constantes y por último cierro el formulario.

CÓDIGO DEL BOTÓN "DATOS FIJOS"

Private Sub btnCambiar_Click()
  DoCmd.OpenForm "frmDatosFijos", acNormal
End Sub

Este código abre el formulario para editar los valores fijos.

CÓDIGO DEL BOTÓN "AGREGAR"

Private Sub btnAgregar_Click()
  DoCmd.GoToRecord , , acNewRec
End Sub

Módulo que contiene las variables. Cree un módulo y asígnele cualquier nombre.

Public strEntidad As String
Public strBase As String
Public strArea As String

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas