Seleccionar y ejecutar

Espero que me ayudes... Soy controlador aéreo y estoy realizando un pequeño programa en access pero me encuentro en un dilema que no puedo solucionar... Necesito que a través de un cuadro de lista o cuadro combinado seleccionar una seria de equipos COM/ o equipos NAV/ para que después de esa selección se introduzca la letra de identificación en un cuadro de texto y así sucesivamente... Pero el problema que surge es que al seleccionar un equipo LORAN C introduce la letra C en el cuadro de texto hasta ahí todo bien pero si quiero seleccionar otro equipo por ejemplo un DME me introduce la letra DE en el cuadro de texto pero me borra la C y lo que quiero es que se quede la anterior seleccionada en el cuadro de texto... Puedes ayudarme a resolver este problema... Gracias por todo... NOTA: Son un máximo de 21 letras a seleccionar...
Respuesta
1
Vamos a ver..., lo que tienes es más o menos esto: CuadroDeTexto.text ="C" para cada uno de las selecciones ¿no? y con CuadroDeTexto.text = CuadroDeTexto.text & "C" te acumularía la letra "C" al contenido que tuvieras en CuadroDeTexto.Text. Y ahora te pregunto: ¿Y qué pasaría si la quinta letra introducida hay que corregirla? ¡Menudo lio! ¿La quinta sería la quinta y la última?. Me puedes dar más datos.
Hola de nuevo... y gracias por contestar... Bien a tu aclaración te comento que he resuelto el problema en parte pero ahora me surgió otra duda... ANTES de pasar a la duda te copio lo que he hecho hasta ahora:
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
Con todo esto consigo que al seleccionar equipos me los ponga en el cuadro de texto sin borrar el anterior... BIEN CUAL ES EL PROBLEMA ¿sólo 1?: Seleccionar la 'S' significa que se tiene (F, L, O y V) por lo tanto se borrará estas 4 letras si selecciono 'S' pero el problema es que debo de buscar la forma para que si no están estas 4 letras y al seleccionar 'S' no me borre ninguna y que no me ponga la 'S'... ESPERO QUE ME ENTIENDAS... OTRA COSA ¿CÓMO PUEDO COPIAR EL CONTENIDO DE UN CUADRO DE TEXTO AL PORTAPAPELES DE WINDOWS a través de hacer click en un botón de comando? Para poder utilizar este contenido en otro programa utilizando la sentencia 'PASTE' de éste programa... GRACIAS POR TODO
Pregunta 1ª: después de "If Cuadro_combinado245 = "S" Then " tendrías que poner: if EQUIPO <> "FLOV" then exit sub
Pregunta 2ª: con "Clipboard.SetText Cuadro_1.Text" copias el contenido del cuadro de texto "Cuadro_1" en el portapapeles.
Hola de nuevo... Gracias por contestar... bien con respecto a lo de la 'S' ya funciona pero con lo de copiar el contenido de un cuadro de texto por medio de hacer click en un botón de comando no me funciona...
Crea un botón de comando e introduce el siguiente código: DoCmd. GoToControl "campo1"
DoCmd. RunCommand acCmdCopy
Si abres el visor del portapapeles verás allí el contenido del "campo1". Mucha Suerte
Hola de nuevo, funciona ahora sí funciona... es posible tener el campo1 en estado no visible ya que no quiero que este se vea al abrir el formulario y claro al copiar me sale un error de mover el focus a ese campo cuando no está visible... GRACIAS POR TODO...
En programación visual puedes hacer cosas que en principio ni piensas que puedas hacer... por ejemplo, el campo1 al que nos estamos refiriendo puede NO VERSE por dos razones, la primera sería la más lógica y es poner .visible=false y ¿la segunda...? Pues poner el campo detrás de algún otro campo para tenerlo disponible a la hora de cambiar a ese campo para tomar unos datos y llevarlos al portapapeles, ¿me explico?. Aquí lo importante no es como lo hace sino lo que parece. Mucha suerte.

1 respuesta más de otro experto

Respuesta
1
Entiendo que al cuadro texto le vas agregando letras a medida que vas seleccionando equipos. Entonces lo que tienes que hacer es que cada vez que seleccione un equipo en el evento before update de las propiedades del campo vas a colocar el siguiente código
Texto1 = TextTemp
Y en el evento after update
colocas:
Texto1 = Texttemp & Texto1
Texto1: es el nombre del campo texto y TextTemp es un campo temporal donde vas almacenando el valor anterior para que no se pierda, acuérdate de declarar el campo temporal como texto... si tienes duda te envío un ejemplo.. suerte
Gracias por contestar tan pronto y ayudarme... con respecto a tu aclaración no me funciona, a lo mejor es que no me expliqué bien, pues bien este es mi dilema:
Pues bien, trataría de lo siguiente:
Disponer de un cuadro de lista o cuadro combinado (ELEGIR EQUIPO) y de un cuadro de texto (EQUIPO). La idea es seleccionar en el cuadro de lista un equipo y que éste se visualice en el cuadro de texto con una letra que identifique a ese equipo... PROBLEMAS que se me han planteado: cuando selecciono un equipo la letra que lo identifica se visualiza en el cuadro de texto pero a la hora de seleccionar otro equipo su letra identificativa se muestra en el cuadro de texto PERO BORRA la anterior selección...¿cómo se puede solucionar este problema?...
El cuadro de lista o cuadro combinado (ELEGIR EQUIPO) deberá de disponer de 2 columnas:
Columna 1: columna 2:
A Sin asignar
B Sin asignar
C LORAN C
De dme
E Sin asignar
F ADF
G GNSS
H HF RTF
i ins
J Enlace de datos
Que mls
L ILS
M Omega
N NIL
O vor
P Sin asignar
QUE Sin asignar
R Certificación de tipo RNP
S ADF, ILS, VOR, VHF RTF
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
Siendo la columna 1 la dependiente, es decir, la que figure en el cuadro de texto una vez seleccionado el equipo correspondiente... las letras sin asignar no deberán aparecer en el cuadro de texto pero sí en el cuadro de lista... Si hay un equipo seleccionado anteriormente y éste se visualiza en el cuadro de texto, si opto por seleccionar N (NIL) que me borre todos los equipos que estén en ese momento en el cuadro de texto y que se visualice a partir de ahora la letra N... Por último si he seleccionado laa letras F(ADF), L(ILS), O(VOR) y V(VHF RTF) a parte de otras y selecciono la letra S que ésta se visualice en el cuadro de texto pero que me borre la F, L, O y V pero dejando las demás...
Espero que puedas ayudarme a concretar la solución de este problema... GRACIAS POR TODO...
Es más complicado de lo que esperaba. Envíame tu correo y te devuelvo el ejemplo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas