** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Valor predeterminado "variable" cuadro combinado
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoValor predeterminado "variable" cuadro combinado

 Responder Responder
Autor
Mensaje
JLMM Ver desplegable
Habitual
Habitual


Unido: 06/Julio/2015
Localización: Herrera
Estado: Sin conexión
Puntos: 70
Enlace directo a este mensaje Tema: Valor predeterminado "variable" cuadro combinado
    Enviado: 06/Julio/2015 a las 16:06
Buenas Tardes a todos, tengo una duda que espero podais ayudarme a resolverla, utilizo access 2003 y en un formulario dispongo de un cuadro combinado,.... lo que pretendo es que el cuadro combinado recuerde el último valor asignado como predeterminado...lo he conseguido con el siguiente código pero en cuanto salgo de access no recuerda el último valor asignado
 
Dim CampoPrensa1 As String
 
Private Sub Form_AfterUpdate()
CampoPrensa1 = Me.[Cuadro combinado433]
End Sub
 
Private Sub Form_BeforeInsert(Cancel As Integer)
Me.[Cuadro combinado433] = CampoPrensa1
End Sub
 
Funciona perfecto...pero sólo si no salgo de access....que me recomendais
 
Gracias de antemano
Arriba
E. Feijoo Ver desplegable
Moderador
Moderador


Unido: 16/Abril/2004
Localización: España
Estado: Sin conexión
Puntos: 19948
Enlace directo a este mensaje Enviado: 06/Julio/2015 a las 17:43
Observo un error de conceptos, el valor no es 'un valor predeterminado' es un valor que se asigna de forma directa (quizás el mismo resultado óptico, pero no de trabajo)

El valor predeterminado de un objeto se le asigna en la propiedad del mismo nombre y ha de ser una expresión de texto, se guardara si se guardan los cambios del formulario (para eso esta/existe lo de 'AcSaveYes' en un DoCmd.Close)

En fin, los datos se guardan en tablas y si se crea una tabla específicamente creada para guardar condiciones, datos, ... en definitiva PARAMETROS, un clásico DLookup lo devolvería y por cualquiera de los medios que se conozcan o dominen (Recordset, SQL ....) y con una muy simple función (solo para hacerlo mas cómodo) se guarda el que será el nuevo dato en la próxima sesión.
Arriba
JLMM Ver desplegable
Habitual
Habitual


Unido: 06/Julio/2015
Localización: Herrera
Estado: Sin conexión
Puntos: 70
Enlace directo a este mensaje Enviado: 06/Julio/2015 a las 17:54

Gracias Sr. Feijoo...pero me he perdido....siento no haberles informado que mi visual es algo justillo.

De todas maneras gracias auque no entienda la respuesta
Arriba
E. Feijoo Ver desplegable
Moderador
Moderador


Unido: 16/Abril/2004
Localización: España
Estado: Sin conexión
Puntos: 19948
Enlace directo a este mensaje Enviado: 06/Julio/2015 a las 19:10
Vale, analicemos diferencias:

Valor predeterminado, es un valor que (por defecto) se le asigna a un objeto y esta 'guardado' en una propiedad del mismo (propiedad es una de las cualidades del objeto, tales como el color, dimensiones o posición espacial)

Si se inicia un nuevo registro y se aborta su creación, los valores que tome como 'valores por defecto' se despreciaran y dejara cerrar el objeto (en este caso al formulario que contiene el o los objetos)

Si lo que se hace es 'asignar valores', el registro ya se inicio y 'pedirá permiso' para guardarlo o directamente dará error si le falta alguno de los valores requeridos.

Si se utiliza la propiedad 'valor por defecto' en algún objeto, esta seguirá estando cuando se vuelva a abrir la base de datos (al igual que recuerda sus colores, dimensiones ...), si se le modifica el valor que se asigno, de hecho se esta 'modificando al objeto' y cuando se cierre el formulario (o la aplicación, que forzara el cierre del formulario) pedirá permiso para guardar los cambios (se puede evitar, pero quedara para cuando se pase de la teoría a la practica).

Nada impide crear una tabla con (por ejemplo) dos campos, en uno 'para que sirve', en otro el valor, la llamaremos 'Memorizar'

En 'para que sirve' podemos poner (en este caso 'valor para cuadro combinado 33'
En valor lo que se desea que aparezca (una fecha, un nombre una cifra .....)

Cuando 'necesite' ese dato, una función de dominio (algo que merece ser estudiado con detalle: las funciones de dominio) permitirá recuperarlo, seria algo como:
.- Antes:
Me.[Cuadro combinado433] = CampoPrensa1

.- Después:
Me.[Cuadro combinado433] = Dlookup("dato","memorizar","[para que sirve]= 'valor para cuadro combinado 33'")

Queda la parte en que se modifica el valor de la tabla, pero eso será un tema para un supuesto futuro.
Arriba
pepelu8 Ver desplegable
Habitual
Habitual


Unido: 16/Septiembre/2005
Estado: Sin conexión
Puntos: 152
Enlace directo a este mensaje Enviado: 09/Julio/2015 a las 20:52
JLMM, mira loque he encontrado en la red
Una solución podría ser incluir como etiquetas de los campos del formulario botones de alternar sustituyendo las típicas etiquetas que incluye access vinculadas a los cuadros de texto. Como estos controles sólo admiten dos valores, cuando se activara un botón se podría añadir a su evento AfterUpdate las instrucciones que nos permitan controlar el valor predeterminado del cuadro de texto asociado.
Ej:
If BtnAlt_Soporte Then
Soporte.DefaultValue = Soporte.Value
Else
Soporte.DefaultValue = ""
End If
Espero te pueda servir
Arriba
E. Feijoo Ver desplegable
Moderador
Moderador


Unido: 16/Abril/2004
Localización: España
Estado: Sin conexión
Puntos: 19948
Enlace directo a este mensaje Enviado: 09/Julio/2015 a las 22:20
Y ese método ¿conserva ese nuevo valor predeterminado si se cierra el formulario SIN guardar los cambios?

.- Ojo que no es lo mismo guardar los datos que guardar los cambios de diseño
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable