¿Un texbox puede ser ordenado?

Os planteo la cuestión. Sería importante para mi recibir vuestra ayuda. Os planteo la cuestión.

Tengo dos combos en cascada.

El primero de ellos contiene CAUSA

El segundo de ellos contiene los diferentes tipos de CAUSA que hay dentro de las especificadas en el primer combo.

Tengo a continuación un campo texto de una tabla que va almacenando los valores que escojo en el segundo combo (almacena un id. Numérico que es lo que me interesa)

Funciona perfectamente, pero me interesa perfeccionar su funcionamiento consiguiendo:

1º Que los valores que se almacenan en el campo texto se ordenen de menor a mayor.

2º Que una vez que escoja una opción en el segundo combo y se traslade su valor al texbox, los dos combos pasen a estar en blanco para una nueva elección.

3º ¿Podría deseleccionar una vez que un id esté ya incluido en el texbox? Es decir, si después de seleccionar me arrepiento o me he equivocado, quitar esa elección del texbox.

El nombre del primer combo es “Cbotipocausa”

El nombre del segundo combo es “CAUSAS”

El nombre del texbox es LISTA_CAUSAS

El código que tengo en el segundo combo, después de actualizar, es el siguiente:

Private Sub CAUSAS_AfterUpdate()

If Me.LISTA_CAUSAS = "" Then

Me.LISTA_CAUSAS = Me.CAUSAS

Else

Me.LISTA_CAUSAS = Me.LISTA_CAUSAS & " - " & Me.CAUSAS

End If

End Sub

Private Sub CAUSAS_GotFocus()

If IsNull(Me.Cbotipocausa.Value) Then

MsgBox "Debe seleccionar un tipo de causa", vbInformation, "AVISO"

 Exit Sub

 End If

End Sub

Private Sub Cbotipocausa_AfterUpdate()

Me.CAUSAS.Requery

End Sub

¿Podría alguno de vosotros ayudarme? Soy inexperta.

1 respuesta

Respuesta
1

Ya me picó el gusanillo con tu otra pregunta sobre este tema, pero entonces no logré nada.

Hoy, con más tiempo para trastear, lo he conseguido. Te dejo aquí un ejemplo.

Para la 2ª pregunta, sólo tienes que añadir al código de Private Sub CAUSAS_AfterUpdate() estas dos lineas, después del End IF:

Me.Cbotipocausa= Null
Me.CAUSAS= Null

Para la 1ª pregunta, tendrás que copiar el procedimiento Ordenar del ejemplo (adaptándolo a tus nombres) y añadir la línea Ordenar al procedimiento Private Sub CAUSAS_AfterUpdate(), que en definitiva quedaría así:

Private Sub CAUSAS_AfterUpdate()If Me.LISTA_CAUSAS = "" ThenMe.LISTA_CAUSAS = Me.CAUSASElseMe.LISTA_CAUSAS = Me.LISTA_CAUSAS & " - " & Me.CAUSASOrdenarEnd IfMe.Cbotipocausa= NullMe.CAUSAS= NullEnd Sub

La 3ª pregunta no entiendo lo que quieres hacer ni cómo, pero me parece que la opción sencilla es que borres manualmente el valor...

¡Gracias! Gracias!!!!!!!!! Gracias!!!!!!! Sveinbjorn. Funciona perfectamente. Eres un genio de Access, como Neckkito's. No sabes lo que te agradezco tu ayuda. Me era fundamental.!!! Mil gracias por ayudar y compartir tus conocimientos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas