Dim strZdmc As String
strZdmc = "实得工资"
sql = "update GZXX set [" & strZdmc & "]= Round([" & strZdmc & "],2)"
再试试!

解决方案 »

  1.   

    你用的是什么数据库?
    我觉的很可能该数据库不支持round函数。
    例如在access中format函数是不可以用的
      

  2.   

    access2k
    但是直接用字段名不用变量来代替是可以的
      

  3.   

    你用的是VB5吧,round函数是要到VB6才支持的,在VB5中当然会说函数未定义了,要想用这个函数,你得用VB6了还有就是楼上的兄弟说的不太对哟,那句sql语句是在VB中执行的,可不是在数据库中执行,所以不会是数据库不支持的原因,而且在access中是支持format的,而不是你说的不可以用
      

  4.   

    偶用的是vb6+win2k+access2k
    如果我这样写就可以
    sql="update GZXX set 实得工资=round(实得工资,2)"
      

  5.   

    你自己的问题罢了,数据库中恐怕没有该函数,所以报错。
    试试这个:sql = "update GZXX set " & strZdmc & "=" & Round(" & strZdmc & ", 2)不过这一来,你Round函数的第一个参数是:strZdmc ???
    请检查一下吧
      

  6.   

    不好意思,刚才直接拷下来忘了改后边。是:sql = "update GZXX set " & strZdmc & "=" & Round(strZdmc, 2)Round函数的第一个参数可以是实际的数字,也可以是数值表达式,而你strZdmc是字符串,显然不对。
      

  7.   

    to: ilfsm(蜀山刀客) 
    strzdmc是代表字段名称,strzdmc本身是字符串,这样一来不是要把字符串给四舍五入?
    而我的本意是要把这个字段strzdmc="实得工资"中所有的数据四舍五入
    这样做的结果是“类型不匹配”,因为strzdmc="实得工资"
    我现在用的是笨方法:先select出每个字段的每个值,然后四舍五入这个值,最后再update
    慢死了~
      

  8.   

    对呀,既然是access数据库那么用format更好,更方便