Teclado virtual en Formulario

La idea seria en un formulario, tengo 2 campos... Ejemplo Cantidad 1, y Cantidad 2.
Seria crear un teclado en pantalla (con botones del 1 al 9), y que le pulse al campo de Cantidad 1, marque en el teclado en la pantalla para rellenarlo, y posteriormente con el ratón le marcaría en la cuadro de cantidad 2, y marcando en el teclado, le introdiciria la cantidad.
A simple vista, parece muy sencillo, pero no encuentro la manera de que los botones, al clicarle, me introduzca el valor 1, 2, 3, 4... O 128 ... En el campo que selecciono previamente con el ratón.
¿Cómo lo podría hacer?

6 Respuestas

Respuesta
1
Mirate al propiedad Activecontrol del form, quizá por allí podrás realizar lo que quieres.
Respuesta
1
Sencillo
Se me ocurre lo siguiente y es de los más sencillo
creamos un formulario con lo siguiente
2 text box
9 buttons
Como solo tenemos 2 fields y queremos saber cual esta activo creamos una variable boolean para saber cual fue el seleccionado
Private Campo0 As Boolean
en  el evento got focus de los text ponemos
Private Sub Text0_GotFocus()
    Campo0 = True
End Sub
Private Sub Text2_GotFocus()
    Campo0 = False
End Sub
de esa forma sabemos cual text recibio el foco :)
ahora solo te dare el codigo para el boton 1
Private Sub Command4_Click()
 If Campo0 = True Then
    Text0 = Text0 & 1
 Else
    Text2 = Text2 & 1
End If
de esta forma al hacer click en el boton, evaluamos cual text tenia el foco y concatenamos los valores el que tenia con el que estamos agregando :)
Así de sencillo es :)
Buenas creelyman,
Que rapido que me has contestado, eres una máquina, ante todo mil gracias,
Solo una pregunta, la variable bolean que comentas, ¿dónde debo introducirlo...?
¿El evento got focus? Donde lo encuentro..
La segunda parte de los botones en principio la tengo clara, he probado, y por el momento algo he conseguido, pero creo que me falla la primera parte...
¿Puedes detallarme más? Siento no saberlo... y te lo agradezco enormemente,
Saludos,
La variable boolean la declara al inicio del código
el evento gotfocus lo encuentras en la pestaña events del textbox :) seleccionas el textbox (con el formulario en modo diseño) y le das propiedades y veras una pestaña que dice events o eventos :)
Respuesta
1
Espero haber entendido, ¿necesitas qué al dar clic en un campo emerga un tipo calculadora con dígitos del 1 al 9 y en esta presionar los números deseados y que al cerrar la calculadora aparezcan estos dígitos en el campo Cantidad1?
¿Lo mismo pasaría con el campo Cantidad2?
Es para una aplicación tipo Touch, ¿cómo para un restaurante o lago así?
***PROPUESTA:
En todo caso te propongo que crees un nuevo formulario en blanco, en vista diseño e insertes 9 botones.
En propiedades de cada uno de los botones de comando en Formato en Titulo pones 1, 2 ... y así sucesivamente para cada control.
En la ficha Otros en Nombre cambia por ctr1, ctr2, ctr3... y así sucesivamente para cada control.
Ya que tengas hecho esto crea un cuadro de texto, que vendría siendo como la "Pantalla" del teclado numérico. En propiedades en la ficha Otros en nombre pones Pantalla.
En los botones que simulan a los números que creaste, vamos a asignarles, uno por uno, en Eventos / Al hacer clic a través del generador de código VBA lo siguiente:
Pantalla = Pantalla & 1

De nuevo sucesivamente para cada control, sólo cambia el número.
Debería verse más o menos así:
Private Sub ctr1_Click()
Pantalla = Pantalla & 1
End Sub

____________________
Private Sub ctr2_Click()
Pantalla = Pantalla & 2
End Sub

... así sucesivamente.
Listo!. Cada vez que presiones un botón de la calculadora, en la "Pantalla" se agegarán los números que presiones.
Usamos "Pantalla & 1" porque de esta forma crearemos una Cadena de texto y no permitimos que se borre el último valor escrito.
Si sólo ponemos Pantalla = 2 sólo se mostrará el 2 en Pantalla, borrando todo lo demás. Este caso aplicaría sólo cuando se permite seleccionar un sólo número al usuario.
Por último te faltará agregar los botones de Cancelar y Guardar. En este último tendrás que poner igual en Eventos Al hacer clic el procedimiento más adecuado para que guardes este dato en el campo que requieras.
Todo esto será para que lo desarrolles.
Buenas, que velocidad en la respuesta,
Te lo agradezco enormemente porque ya estaba desesperado,
Esto es para montar en una pantalla táctil, un formulario de producción... piezas fabricadas, tiempo operativo, etc... muy sencillo... pero una recopilación de datos fácil y rápida para el operario y empresa... un detallito, je je. (Es una empresa pequeñita... hay que modernizarse...)
Quizás en un apartado no he especificado, en el formulario "la calculadora... mejor dicho teclado virtual" estará siempre FIJA en el formulario SIEMPRE VISIBLE.
Lo que necesitaría es que, por ejemplo si selecciono el cuadro de texto CANTIDAD, al picar en el teclado, me introduzca los números en ese cuadro, posteriormente selecciono con el dedo en el cuadro de horas... y al picar en el teclado me lo introduce en ese cuadro...
Espero haberme explicado mejor... es decir, que yo diga con el dedo que cuadro quiero que me escriba, y al pulsarle a los número me escriba en ese cuadro...
De nuevo muchas gracias, si me das pistas para hacerlo así, te estaré eternamente agradecido.
Saludos,
¿Ya probaste lo que te envié?
Igual te sirve el ejemplo.
En tu formulario donde ya tienes estos dos campos diseña este teclado numérico, tal cual como está en las instrucciones que te envié anteriormente.
En el código, en todo caso, habrá que ser ingeniosos para que el mismo sirva para ambos campos (cantidad1 y cantidad2)
Claro que el control Pantalla ya no es necesario. Éste tendrá que ser sustituido por el nombre de tu campo1
Entonces, ¿qué con el otro campo?
Precisamente eso, el ingenio.
Ya esto es sencillo, piensa cómo le harías si ya tienes tu teclado numérico y puedes guardar e el campo1 cómo le harías para el campo2.
Es de esta forma como se aprende.
Como siempre he pensado, yo sólo soy un apoyo, un staff, pero el usuario debe de dar un extra para que mi sugerencia o respuesta realmente valga la pena y el aprendizaje sea significativo.
Qué opinas.
De cualquier forma sigo pendiente.
OK, hay veces... que vas tan directo que no te paras ni a pensar... cierto, ya he aplicado un getfocus.
Todo listo y funcionando,
Gracias por tu ayuda, te lo agradezco enormemente,
Saludos,
Respuesta
1
La verdad que en eso no te voy a poder ayudar, no manejo un nivel de programación tan alto, y eso debe realizarse por programación, no por access, pero te paso un link de un hombre que si la tiene clara...
Ahí vas a encontrar muchos ejemplos, por ahí encontrás lo que solicitas.
Respuesta
1
Deja ver si entendí, ¿quieres hacer una calculadora?
Buenos días, ya lo tengo solucionado, si me dices OK, cierro la pregunta,
Gracias y Saludos,
No, es un teclado... como un TPV, pero que inserta en el textbox que tu seleccionas, al presionar las teclas númericas.
Similar a la calculadora (sin cálculos), y que ingresa los datos en vacíos campos.
Gracias por tu interés,
Saludos,
Respuesta
1
Ok. Me alegro que tengas la solución.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas