VB中的TEXT控件,添加后能否将属性设置成数值型。VFP中是可以的。
因为如果不设成数值的话,当一个TEXT控件,作用是输入数值,可当数值为空的时候,就是不录入任何内容,在VB+SQLSERVER中把它存入数值型字段时会提示把字符型转换为数值型时出错,所以每次当TEXT为空的时候,都要自动把它填入零,不雅观,有没有好办法解决。

解决方案 »

  1.   

    Val 函数返回包含于字符串内的数字,字符串中是一个适当类型的数值。语法Val(string)必要的 string 参数可以是任何有效的字符串表达式.说明Val 函数,在它不能识别为数字的第一个字符上,停止读入字符串。那些被认为是数值的一部分的符号和字符,例如美圆号与逗号,都不能被识别。但是函数可以识别进位制符号 &O(八进制)和 &H(十六进制)。空白、制表符和换行符都从参数中被去掉。下面的返回值为 1615198:Val("    1615 198th Street N.E.")在下面的代码中,Val 为所示的十六进制数值返回十进制数值 -1。Val("&HFFFF")注意 Val 函数只会将句点(.)当成一个可用的小数点分隔符。当使用不同的小数点分隔符时,如在国际版应用程序中,代之以 CDbl 来把字符串转换为数字。
      

  2.   

    方法1   保存前先用判断text中的内容是否为数字,如是则存,如不是则不存。
    方法2   也可记录鼠标或键盘操作,是数字就允许输入,不是数字就发出警告。
      

  3.   

    另外可以在程序启动时设置text.text="0"
      

  4.   

    只输入数字的方法是:
    Private Sub Text1_KeyPress(index As Integer, KeyAscii As Integer)
        If (KeyAscii > 57 Or KeyAscii < 48) And KeyAscii <> 46 And KeyAscii <> 8 Then
        Beep
        KeyAscii = 0
        End If
    End Sub
    不过到表单的时候还要用val()函数转换才行那
      

  5.   

    if not isnumeric(text1.text) then
        msgbox "请输入数值型数据!",48,"提示"
        text1.setfocus
        exit sub
    end if
      

  6.   

    SetWindowLong(hwnd, GWL_STYLE,GetWindowLong(hwnd,GWL_STYLE) Or ES_NUMBER)如果写错了请查一下手册
      

  7.   

    if text1.text <> "" and not isnumeric(text1.text) then
        msgbox "请输入数值型数据!",48,app.exename
        text1.setfocus
        exit sub
    end if