Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    106

    [VB6] Controllare unaTextBox

    Buongiorno a tutti,

    Ringrazio anticipatamente chiunque risponda al mio quesito.

    Sto creando un gestionale di magazzino in VB6, ora mi sto occupando della creazione degli articoli di magazzino.
    Nel mio frame di inserimento articoli, ho inserito una text box che riguarda il prezzo e ho dei problemi nel controllare questa textbox.

    In pratica quando vado sulla text box relativa al prezzo dell'articolo, controllo se è stato digitato un numero, se cosi non è allora faccio displeare un messaggio d'errore : "INSERIRE UN VALORE NUMERICO" e ripulisco la mia textbox1.
    Il problema è che la textbox non si ripulisce, in quanto se io scrivo nella textbox "a", mi da il messaggio d'errore, ma mi displea la "a" che io avevo digitato, quando invece la dovrebbe cancellare.
    Il controllo che io faccio è questo:

    Private sub text1_KeyPress (KeyAscii As Integer)

    If KeyAscii > 96 and KeyAscii < 123
    MsgBox "INSERIRE UN VALORE NUMERICO"
    text1.text = " "
    End if

    End Sub

    Potete dirmi come risolvere il problema ?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Deve essere

    codice:
    If KeyAscii > 96 And KeyAscii < 123 Then
        MsgBox "INSERIRE UN VALORE NUMERICO"
        KeyAscii = 0
    End If
    ma devi ancora rivedere il codice perche' cosi' controlli solamente le lettere minuscole ...

    E' meglio che la If identifichi quello che e' permesso ... altrimenti ...

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    106
    TI RINGRAZIO IMMENSAMENTE PER L'OTTIMO AIUTO.

    SEI GRANDE

    SALUTI

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Di nulla ...

    Capisco che tu stia imparando, ma vorrei che sapessi che non ho fatto chissa' cosa perche' queste sono nozioni di base ...

  5. #5
    Ciao..il metodo di Oregon è perfetto, cmq un ulteriore metodo può essere quello di usare la funzione Isnumeric.

    Ciao

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    106
    Puoi spiegarmi come funziona la funzione IsNumeric ?
    Sto imparando ad utilizzare VB6 e non conosco ancora tutte le funzioni.
    Sono curioso di conoscere questa funzione, potrebbe essermi utile.

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Per imparare con profitto, sarebbe il caso che tu iniziassi a studiare l'argomento da solo e a provarlo.

    Prova ad usare la funzione IsNumeric (che dal nome stesso puoi capire a quale domanda risponde) e prova, nella finestra di debug a scrivere

    Print IsNumeric("ABC")

    Print IsNumeric("123")

    Print IsNumeric("12AB")

    per cominciare a renderti conto se e come ti puo' essere utile ...

  8. #8
    Originariamente inviato da oregon
    Per imparare con profitto, sarebbe il caso che tu iniziassi a studiare l'argomento da solo e a provarlo.

    Prova ad usare la funzione IsNumeric (che dal nome stesso puoi capire a quale domanda risponde) e prova, nella finestra di debug a scrivere

    Print IsNumeric("ABC")

    Print IsNumeric("123")

    Print IsNumeric("12AB")

    per cominciare a renderti conto se e come ti puo' essere utile ...
    Sono perfettamente d'accordo, è il metodo migliore per capire, e poi imparare.

    Ciao ad entrambi..

  9. #9
    Utente di HTML.it L'avatar di tippolo
    Registrato dal
    Dec 2005
    Messaggi
    103
    Ciao,
    credo che tu intendevi far questo:

    codice:
    Private Sub Text1_KeyPress(KeyAscii As Integer)
        If KeyAscii < 48 Or KeyAscii > 57 Then
            MsgBox "IL TASTO PREMUTO NON è UN NUMERO"
        End If
        
        Select Case KeyAscii
            Case 48 To 57 '
            Case Else '
                KeyAscii = 0
        End Select
    End Sub

  10. #10
    Faccio una precisazione: la 2a parte del codice è sbagliata e inutile: basta mettere KeyAscii = 0 insieme a MsgBox (come faceva vedere Oregon). L'errore sta nel fatto che il Select Case è inutile visto che bisogna discriminare solo un evento booleano: o il tasto appartiene al range oppure no..Cmq se proprio si vuole il select case:

    codice:
    Select Case KeyAscii
            Case 48 To 57 
            Exit sub
            Case Else
            KeyAscii = 0
        End Select
    Ciao a tutti..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.