Creazione pulsantiera numerica

di il
17 risposte

Creazione pulsantiera numerica

Un buongiorno a tutti.
Ho bisogno di chiedere se qualcuno mi può aiutare a realizzare una pulsantiera numerica.
Mi spiego meglio: 11button (da 0 a 9 + uno che cancella tutto e un altro che cancella ad uno ad uno i numeri), una textbox in cui vengono trascritti i numeri premuti dal mouse.
In se per se lo so che la richiesta è strana, ma poi il tutto il lo adatterei al database che già ho.

Grazie.

17 Risposte

  • Re: Creazione pulsantiera numerica

    Che problema trovi a creare 9 BUTTON con i numeri...? A me pare una cosa talmente semplice e banale che forse ho completamente frainteso l'esigenza.

    Nello specifico nessuno realizzerà NULLA per te a mo di pappa pronta, quindi dicci cosa hai fatto e cosa NON riesci a fare.
  • Re: Creazione pulsantiera numerica

    Allora, nel database in mio possesso (non creato da me) ho estrapolato questo codice che va a trascrivere il Caption in una textbox.
    Private Function toggle()
    'RIPORTA IL CAPITOLO DEL BUTTON DEGLI UFFICI IN NUMERO DEL RICHIEDENTE
    Dim ctl As Control
        For Each ctl In Me.Controls
            If TypeName(ctl) = "ToggleButton" And ctl.name <> ActiveControl.name Then
                ctl = False
            Else
                txtRichiedente = Nz(ActiveControl.Caption, "")
            End If
        Next
        txtNumTelefonoRichiesto.SetFocus
    End Function
    Questa funzione fa si che ad ogni button premuto nella mia form, nella textbox compare la Caption del button premuto.
    Io invece vorrei che ad ogni pulsante venisse trascritto un numero dopo l'altro. Quindi, premo il button del numero "1" e il button del numero "4", allora nella textbox viene scritto il numero "14" e così via....

    Mi dispiace di non aver postato prima il codice ma non volevo confondere le idee.
  • Re: Creazione pulsantiera numerica

    Invece di assegnare semplicemente la stringa a txtRichiedente, assegna il valore precedente di txtRichiedente + la nuova stringa.
  • Re: Creazione pulsantiera numerica

    Il codice che riporti è maldestro e poco funzionale direi ma non è oggetto del problema...
    Mi pare di capire che tu di TUO non sai di cosa parli... o capisco male...?

    Devi semplicemente creare una Funzione che potrai richiamare dai Button preposti inserendo nell'evento, al posto della [Routine Evento] che abitualmente si attiva, il Nome della Funzione.
    Esempio
    
    Private Function SelezionaTasto()
    ....
    End Function
    Nell'evento Click dei Button preposti a scrivere nella TextBox andrai a scrivere
    
    =SelezionaTasto()
    Ora il Button schiacciato è quello attivo, quindi ti basta aggiungere alla TextBox la Caption del Button attivo che rilevi con Screen.ActiveControl.

    Prova a buttare giu qualche cosa di TUO... e verifica come funziona.
  • Re: Creazione pulsantiera numerica

    Ho fatto come hai detto come hai suggerito
    Private Function number()
    txt numero richiesto = Screenshot.ActiveControl.Caption
    End function
    Poi all'evento click ai button ci scrivo =number()
    Funziona, ma al click su un altro button nella textbox si cancella quello che c'è scritto e compare la Caption del button appena premuto. Io invece vorrei che continuassea scrivere in aggiunta a quello che già c'è scritto. Dunque ho premuto il button "1" e poi il button "4", nella textbox deve essere scritto "14"
  • Re: Creazione pulsantiera numerica

    Ti basta aggiungere alla TextBox
  • Re: Creazione pulsantiera numerica

    alexps81 ha scritto:


    Ho fatto come hai detto come hai suggerito
    Private Function number()
    txt numero richiesto = Screenshot.ActiveControl.Caption
    End function
    Poi all'evento click ai button ci scrivo =number()
    Funziona, ma al click su un altro button nella textbox si cancella quello che c'è scritto e compare la Caption del button appena premuto. Io invece vorrei che continuassea scrivere in aggiunta a quello che già c'è scritto. Dunque ho premuto il button "1" e poi il button "4", nella textbox deve essere scritto "14"
    Sei certo che la cosa che hai postato funzioni...? Io ho forti dubbi...
    Intanto non usare caratteri speciali(lo spazio ad esempio è da evitare) nei NOMI degli Oggetti.
    Poi [Screenshot] non esiste, quindi è impossibile potesse funzionare.

    Correggi in questo modo:
    Private Function number()  
        Me![txtnumerorichiesto].Value = Me![txtnumerorichiesto].Value & Screen.ActiveControl.Caption
    End function
  • Re: Creazione pulsantiera numerica

    Screenshot ...
  • Re: Creazione pulsantiera numerica

    Ok...adesso appena riesco provo. Grazie.
  • Re: Creazione pulsantiera numerica

    Ottimo Alex era proprio quello che stavo cercando. Perdonami se non mi faccio mai capire al volo ma sono proprio un novellino. Se non sono di disturbo a questo punto volevo chiederti se potresti dirmi come realizzare un button che al suo click cancella uno ad uno numero dopo numero in base alla posizione del cursore.

    Graze
  • Re: Creazione pulsantiera numerica

    Scusa, ma perché non ci provi tu almeno per un po' di tempo?

    Che senso ha farti scrivere tutto il codice (della calcolatrice?) da un altro senza neanche provarci un po'?

  • Re: Creazione pulsantiera numerica

    alexps81 ha scritto:


    Ottimo Alex era proprio quello che stavo cercando. Perdonami se non mi faccio mai capire al volo ma sono proprio un novellino. Se non sono di disturbo a questo punto volevo chiederti se potresti dirmi come realizzare un button che al suo click cancella uno ad uno numero dopo numero in base alla posizione del cursore.

    Graze
    Concordo con Oregon, da tutto il 3D è evidente che non hai una formazione tecnica, ma è altrettanto evidente che farsi fare il compitino da altri non serve a te, ed infastidisce chi legge...

    Prova a fare tu qualcosa... i tentativi saranno sicuramente utili.
  • Re: Creazione pulsantiera numerica

    Immaginavo fosse chiedere troppo. So che in realtà non è possibile avanzare simili richieste. In effetti so ben poco di vba. Sto cercando di portare a termine un lavoro per il mio ufficio che è rimasto a metà da un mio amico, ma ahimè è troppo difficile.
    Cmq ringrazio lo stesso per il tempo che mi avete dedicato...
  • Re: Creazione pulsantiera numerica

    Buongiorno, girando un po' in rete e cercando di capire il comportamento del codice sono giunto a questa soluzione che sembra funzionare. Vorrei un vostro parere in merito al problema che ho postato ieri riguardo al pulsante che cancella lettere dopo lettera.
    Private Sub btnDelete
    If txtnumTelefonoRichiesto.value = "" Then
    txtnumTelefonoRichiesto.SetFocus
    Exit Sub
    Else
    txtnumTelefonoRichiesto.Value = Left(txtnumTelefonoRichiesto.Value, Len(txtnumTelefonoRichiesto.Value) - 1
    End if
    End sub
    Adesso però una cosa che proprio non riesco a risolvere è che ho bisogno di arricchire la funzione dei pulsanti dallo 0 al 9 di modo che ad ogni click sui pulsanti il focus rimane sempre nella textbox. In oltre anche quando cancello lettere dopo lettere il focus deve rimanere nella textbox. Ho provato ad aggiungere
    txtnumTelefonoRichiesto.SetFocus
    ma non funziona bene. Nel senso che il focus non rimane a destra di ogni numero ma me lo ritrovo a sinistra. Tra l'altro se aggiungo txtnumTelefonoRichiesto.SetFocus alla funzione, i numeri che ho trascritto nella textbox vengono evidenziati come selezionati, dunque se andassi a scrivere con la tastiera tutto ciò che c'è nella textbox viene cancellato. Chiedo questo perché potrebbe capitare di dover utilizzare la tastiera dopo aver premuto sui pulsanti, ma la tastiera non funziona se il focus non è nella textbox.
Devi accedere o registrarti per scrivere nel forum
17 risposte