¿Cómo puedo hacer selección múltiple en un cuadro de texto en access?

Tengo un cuadro combinado que tiene equipos COM/ y equipos NAV/ y me gustaría que al seleccionar los equipos de la lista éstos se indroducieran en un cuadro de texto... Pero al parecer cundo selecciono uno me aparece la identificación de éste en el cuadro de texto hasta ahí todo bien pero si selecciono otro me borra en el cuadro de texto el que estaba...¿cómo puedo hacer selección múltiple? Para que se visualice en el cuadro de texto tantos caracteres identificativos de los equipos que selecciono... Los equipos solo se identifican con una letra así que la cosa sería que el cuadro de texto admita como mínimo 21 letras...

2 Respuestas

Respuesta
1
Lo tuyo no es "exactamente" una selección ´múltiple, así que olvida el cuadro te texto "dependiente" de tu combinado...
Crea un cuadro de texto independiente que se llame por ejemplo "receptor", y en el evento 'Después de actualizar' del combinado metes:
[receptor] = [receptor] & [combinado]
deberías añadir un botón que "reseteara" el campo 'receptor', algo así como:
[receptor] = ''
De esta manera, a cada click sobre el combinado, tu campo concatenará la nueva letra...
¿Qué tal? Pruébalo y me cuentas...
Hola de nuevo... Antes de nada muchísimas gracias por ayudarme... Con respecto a tu aclaración te diré que me funciona de maravilla pero te debo de pedir otro favor, bien en el cuadro combinado (equipos) tengo 2 columnas con letra identificativa del equipo (columna 1 y columna dependiente) y nombres de los equipos (columna 2) bien sería esto:
C-LORAN C
D-DME
F-ADF
G-GNSS
H-HF RTF
i-ins
J-Enlace de datos
K-MLS
L-ILS
m-Omega
o-vor
R-Certificado de tipo RNP
t-tacan
U-UHF RTF
V-VHF RTF
W-Aprobación RVSM
X-Aprobación MNPS
Y-Equipo radio de 8,33 kHz
Z-Demás equipo instalado a bordo
Si selecciono pues pasa lo que me decías hasta ahí todo bien y solucionado el primer problema pero resulta que:
Después de la letra identificativa Z tengo la S-Equipos normalizados y la letra identificativa N-NIL pues bien cómo puedo hacer para que al seleccionar S me borre las letras "F, L, O y V" siempre y cuando estas 4 letras estén seleccionadas y ponga en su lugar la letra 'S' en caso contrario que no ponga la 'S' ni borre... bien esa sería una parte y si selecciono 'N' pues borre todos los equipos seleccionados y visualice 'N' y en caso contrario si selecciono 'N' visualice en receptor 'N' y me pase a otro comando... GRACIAS DE NUEVO POR AYUDARME...
Hola de nuevo, y perdona si te moslesto mucho... bien soy controlador aéreo y estoy haciendo una base de datos para rellenar planes de vuelo FPL y claro en la casilla 10 de EQUIPOS hay varios equivos que seleccionar siempre y cuando los lleve en el avión... una vez aclarado esto te comento que he realizado lo siguiente:
Private Sub Cuadro_combinado245_AfterUpdate()
Dim cadena As String
cadena = Cuadro_combinado245
caracter = ""
If Cuadro_combinado245 = "S" Then
lenResul = Len(EQUIPO)
cadena = ""
For i = 1 To lenResul
sh = 0
caracter = Mid(EQUIPO, i, 1)
If caracter = "F" Then
sh = 1
ElseIf caracter = "L" Then
sh = 1
ElseIf caracter = "O" Then
sh = 1
ElseIf caracter = "V" Then
sh = 1
End If
If sh = 0 Then
cadena = cadena & caracter
End If
Next i
EQUIPO = cadena
End If
Etiqueta:
EQUIPO = EQUIPO & Cuadro_combinado245
EQUIPO.Requery
Comando231.SetFocus
Me.Cuadro_combinado245.Visible = False
If Cuadro_combinado245 = "N" Then
EQUIPO = "N"
Comando231.SetFocus
Me.Cuadro_combinado245.Visible = False
End If
If Cuadro_combinado245 = "J" Then
DATO6 = "DAT/"
DATO6.SetFocus
DATO6.SelStart = 5
End If
If (Cuadro_combinado245 = "W" Or Cuadro_combinado245 = "X") Then
DATO7 = "REG/"
DATO7.SetFocus
DATO7.SelStart = 5
End If
If Cuadro_combinado245 = "Z" Then
Me.Cuadro_combinado303.Visible = True
End If
End Sub
QUE PASA pues funciona en parte ya que si por casualidad en el cuadro de texto (EQUIPOS) tengo seleccionados FLOV y si selecciono ahora 'S' pues me borra FLOV y pone ES bien hasta ahí todo bien pero el problema radica en que deben estar las 4 letras FLOV seleccionadas en el cuadro de texto (EQUIPO) para que al pulsar 'S' me las borres y claro si sólo tengo en equipos por casualidad FV y si selecciono 'S' me las borra y me pone 'S' y ahí está el problema que si no están las 4 letras anteriormente seleccionas no me debería poner 'S'... ESPERO QUE ME ENTIENDAS... GRACIAS POR TODO... POR CIERTO en otro cuadro de texto tengo la siguiente máscara: "##>?";;_ LA IDEA es que al entrar al siguiente cuadro me permita 2 opciones:
1)Introducir 2 dígitos
2)Introducir 2 dígitos y una letra
Bien hasta ahí FUNCIONA pero como puedo limitar la entrada de letra a sólo L o C o R siempre y cuando opte por la opción 2)... GRACIAS POR TODO ESPERO TU RESPUESTA...
Lo tuyo es un poquito enrevesado, sobre todo teniendo en cuenta que no conozco "de qué va" el asunto.
Es posible que mi solución no te sirva para hacer eso que pides...
Lo de la N es fácil, sería meter un:
if [combinado]="N" then [receptor]=""
Intenta aclararme lo otro porque no logro entenderlo...
Creo que estamos de acuerdo en que el problema debe estar en el primer IF el de si se pulsa S...
Está un poco enrevesado, podrías echar un vistazo a la función InStr creo recordar (aquí no tengo la documentación/ayuda) que es algo así como:
Instr("F", equipo) que devuelve true si la una subcadena (F) está contenida en una cadena (Equipo)...
Así, yo optaría por,
if cuadro_combinado245="S" then
(¿cuantas veces te has arrepentido de no haber cambiado el nombre al cuadro combinado?)
if instr("F",equipo) AND instr("L", equipo) AND instr("O",equipo) etcétera...
Es decir, borrar EQUIPO solo si en la cadena existen TODAS las letras FLOV...
Así te ahorras el for... next (que me da un poco de grima) y te aseguras de que sólo borra si están todas.
Con el formato no se como ayudarte... yo haría una comprobación en el evento "después de actualizar" lanzando un msgbox si no están esas letras... no soy muy amigo del format para hacer esas cosas...
Suerte.
Respuesta
1
En lugar de utilizar un cuadro combinado, utiliza un listbox, es más apropiado para esto y si miras en las propiedades verás que te permite varias formas de hacer selección múltiple.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas