Columna de búsqueda

Campo que se arma a partir de una "Columna de Búsqueda" en una tabla; a partir de ésta tabla armo un formulario para cargar los registros.
En éste formulario el campo "Columna de búsqueda" toma forma de "cuadro combinado", hasta aquí todo bien ...
Lo que quiero saber es como pre-determinar ( o preservar visualmente, hasta su confirmación) en éste cuadro combinado, la última elección realizada, (porque tengo repetición de ésta opción que es campo principal, para varios registros).

1 Respuesta

Respuesta
1
Si lo que quiere es mientas este cargado el formulario mostrar el dato...
Simplemente en el formulario cree una variable tipo dinámica en 'General' (Antes de empezar cualquier linea de código) o lo puede elegir del primer combo que hay en el código)... de este modo
...
Dim MiVar as Long
...
Vuelvo y le repito, coloco long, si se trata de un tipo numérico, sino debe colocar String, u otro necesario...
Ahora bien como se trata de "guardar" un datos mientras esta abierto el formulario, entonces en el evento AfterUpdate del combo (Donde elegí el valor y que quiere mantener) coloque este código.
...
Private Sub elcombo_AfterUpdate()
MiVar = elcombo.value
End Sub
...
Ojo:elcombo... es el nombre del combo que quiere guardar el dato...
Ahora en el evento Current del Formulario (Al activar el registro)...
Iguala los campos o controles que quiera que lleve este dato.. pero revisando si la variable no es nula o vacía (si es texto) o si es diferente a cero(si es numérica) es decir:
Si la variable es numérica
...
Private Sub Form_Current()
If MiVar <> 0 and Not Isnull(MiVar) then
elcombo.value = MiVar
end if
End Sub
........................
Si la variable es texto
.......................
Private Sub Form_Current()
If MiVar <> "" and Not Isnull(MiVar) then
elcombo.value = MiVar
end if
End Sub
...
Por que en el evento current, este evento se desencadena cada vez que se mueve a otro registro.. ya sea avanzando o al eliminar...
Me avisa como le fue... y le sigo ayudando...
Bueno hay varias cosas...
Primero:lo que dices es preservar un dato, a pesar que se cierre el formulario y se vuelva abrir o también se mantenga al cerrar la base de datos...
Por que para las dos cosas se debe hacer algo diferente:
1. Si es para preservar el dato, entre formularios mientras este abierta la base de datos, lo único que tiene que hacer es crear una variable publica en un modulo...
...
Public MiVAr as long
...
Coloque long. Suponiendo que es numérica, pero puede colocar string, o de otro tipo según la necesidad, es más no se necesita colocar el tipo.. para que sea variant, y trabaje como cualquier tipo de datos...
Ahora al seleccionar el combo en el formulario (o la primera vez que se debe capturar el dato) igualas la variable a ese valor, puede ser en el evento afterupdate del primer combo que se selecciona.. quedaría algo así:
...
MivAr = combo.value
...
Ojo.. tiene que guardar el dato que necesita, ya que el combo puede tener varias columnas, y puede ser que el datos que necesita esta en otra columna, en ese caso seria:
...
MiVAr = combo.Column(NumerDeColumna)
...
El numero de columna empieza en cero(0) hasta el total de columnas - 1...
Ahora como es una variable publica creada en un modulo, mientras este abierta la base de datos, toma ese valor y no lo cambia, entonces lo único que debe hacer es utilizarlo en los demás formularios... entendí que debe tomar este valor en otros combos de otros formularios... entonces al abrir el formulario, evento open del formulario debería hacer esto:
...
OtroCombo.Value = MiVAr
...
En pocas palabras igualar el valor de esta variable donde lo necesita...
Pero: la variable debe ser publica, creada en un modulo..
Así quede sola en el modulo, esto no importa...
Si es el otro caso que te conté... me avisas o si necesita más aclarasion me comenta y le ayudo...
Att:telemaco

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas