If SN.Text = "" Or Batch.Text = "" Then
    MsgBox "请输入查询条件!"
    Exit Sub
End IfAdodc1.ConnectionString = DataConnectString
Adodc2.ConnectionString = DataConnectString
Adodc1.RecordSource = "select 子零件,描述,ABCJ类,数量*" & CInt(Batch.Text) & " as 短缺数量 from BOM where 父零件='" + Trim(SN.Text) + "'"
Adodc1.Refresh
If Adodc1.Recordset.RecordCount > 0 Then
    Do While Not Adodc1.Recordset.EOF
        TmpNum = Adodc1.Recordset.Fields("短缺数量")
        TmpSN = Adodc1.Recordset.Fields("子零件")
        Adodc2.RecordSource = "select 库存数量 from 库存状况 where 物料编码='" + TmpSN + "'"
        Adodc2.Refresh
        If Adodc2.Recordset.RecordCount > 0 Then
            TmpStoreNum = Adodc2.Recordset.Fields(0)
        Else
            TmpStoreNum = 0
        End If
        LackNum = TmpStoreNum - TmpNum
        Adodc1.Recordset.Fields("短缺数量") = LackNum          Adodc1.Recordset.MoveNext
    Loop
    Set DataGrid1.DataSource = Adodc1
Else
    MsgBox "系统中没有此物料编码的BOM!", vbInformation
End If
大家帮忙看看,执行到红色部分的时候就会报错,提示多步操作错误!

解决方案 »

  1.   

    lacknum 变量的数据类型与记录字段的数据是不一致的。我修改了类型,可还是出现如此问题。
    adodc1.recordset.fields("短缺数量")本来是有值,我是想动态给它赋值。
      

  2.   


    当然要报错了。"短缺数量" 并非表中实际存在的字段。解决的方法:
    你使用 MSHFlexGrid 控件来绑定,然后直接对单元格的内容进行改动。