Private Sub txtpb_Validate(Cancel As Boolean)
rstcnn4.MoveFirst
Dim pb01 As Double
Dim pb02 As Double
Dim intbzxl As Integer
Dim i As Integer
pb01 = CDbl(rstcnn4!bzpb)
pb02 = CDbl(txtpb.Text)
cnn1.Execute "update tmpbzsj0 set bzmin = bzmin*pb01/pb02" '执行到这儿,出现错误提示。
End Sub
为什么一执行到update ... set ...这个语句就出现“至少一个参数没有被指定值”错误提示?
数据库为acess2000格式。我的tmpbzsj0表中确有bzmin这个字段存在,并且我的表tmpbzsj0中的字段bzmin为double类型.我的目的是将表tmpbzsj0中的bzmin字段的所有纪录都进行bzmin=bzmin*pb01/pb02这种运算,并将得到的bzmin值替换原来的bzmin值。另外参与运算的所有纪录的bzmin都有有效值,没有空值出现,pb01与pb02也都有有效值。怎么还报这样的错!!原因何在?

解决方案 »

  1.   

    应该这样
    cnn1.Execute "update tmpbzsj0 set bzmin = bzmin*" & cstr(pb01/pb02)
      

  2.   

    "update tmpbzsj0 set bzmin = " & bzmin * pb01/pb02
      

  3.   

    gcj123(佛的光辉) 的是对的,
     minajo21(大眼睛)的是错的。
      

  4.   

    你想想,你那样的写法,传递到数据库引擎的是什么,是
    update tmpbzsj0 set bzmin = bzmin*pb01/pb02
    pb01、pb02是你的程序定义的变量,数据库引擎不知道他们是什么东西
      

  5.   

    你试试
    dim sSQL as string
    ssql= "update tmpbzsj0 set bzmin = bzmin*" & cstr(pb01/pb02)
    msgbox ssql
    cnn1.Execute ssql这下应该清楚了吧,
    如果写成"update tmpbzsj0 set bzmin = bzmin*pb01/pb02"
    ADO则认为bzmin、pb01、pb02都是tmpbzsj0表中的字段,而实际上表中没有pb01和pb02这两个字段,所以就出现“至少一个参数没有被指定值”这样的提示。
      

  6.   

    cnn1.Execute "update tmpbzsj0 set bzmin = bzmin* '" & pb01 & "' / '" & pb02 &"'
      

  7.   

    在VB里寫SQL文時,要在變量的兩邊加上 '" & 和 & "' 以告訴VB這是變量,不是字段