Oppure

Loading
27/10/11 14:14
peppino84
salve ragazzi
ho un piccolo problemino;

in un form ho una serie di textbox ed un commandbutton
alcune costituiscono i campi di inserimento dei dati in input ed altre mi restituiscono degli output

succede che se non inserisco alcun valore in qualche campo mi da un errore di run-time (364)
è evidente che l'iter di calcolo necessita obbligatoriamente di un valore finito in input (anche zero)

l'obbiettivo sarebbe quello di fare in modo che nella textbox in cui non ho inserito nulla compaia lo zero

ad esempio:
   x=val(text1.text)
   if "la casella text1.text è vuota" then
   text1.text=0
   endif


grazie per l'attenzione
aaa
27/10/11 15:24
Non vedendo il codice completo non ti posso dire ma ho perplessità sull'errore ...

Comunque, se la textbox è vuota lo controlli semplicemente con

If Text1.Text="" Then
27/10/11 22:15
peppino84
in realtà non è cosi semplice;
nella textbox potrebbe scausalmente finirci uno spazio " " e cosi ridarebbe l'errore
oggi ci ho perso qualche oretta e ho trovato la soluzione...
molto banalmente:

      x=val(text1.text)
         if Not (IsNumeric(x)) then
         text1.text=0
         endif


inoltre in questo modo mi riparo anche dalla possibilità che si faccia partire il ciclo con un testo non numerico inserito
con questo forum ho scoperto le funzioni IsDate IsEmpty IsNull IsNumeric

grazie per la collaborazione
buon lavoro
aaa
28/10/11 8:09
Per avere risposte precise bisogna fare domande precise.

Hai chiesto di inserire uno 0 se il textbox era vuoto. Avresti dovuto chiedere di validare l'input numerico.
28/10/11 11:47
peppino84
anche un semplice space è considerato vuitao ma "" è diverso da " "
aaa
28/10/11 11:51
Postato originariamente da peppino84:

anche un semplice space è considerato vuitao ma "" è diverso da " "


Un semplice spazio non è considerato affatto vuoto.
28/10/11 12:55
poeo85
punto 1

usa la funzione TRIM$(textbox1.text)

che togli gli eventuali spazi

per cui il tuo if diventa if TRIM$(textbox1.text) <> "" then


punto 2
convalida il dato inserito al textbox1.keypress

If (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> vbKeyBack And Then
KeyAscii = 0
End If
aaa
28/10/11 16:30
peppino84
a NESSUNO :
è vero ... scusa ... dopotutto uno spazio occupa uno spazio
grazie

a Poe85 :
la soluzione che hai proposto è un pochino troppo spinta per me ...
ma mi hai fatto pensare ad un altro problema relativo alla punteggiatura ...
il codice che sto scrivendo acquisisce daiti in input (tutti numerici) sul mio uso il punto come separatore decimale ma se porto l'eseguibile su un pc che usa la virgola saltano i decimali e succede il caos....
immagino si tratti di codice Ascii ...

che faccio??
grazie
aaa