Office中国论坛/Access中国论坛

标题: (请教) CurrentDB.Execute 执行出错 [打印本页]

作者: 疾风    时间: 2004-2-16 19:58
标题: (请教) CurrentDB.Execute 执行出错
我平时用的是 Docmd.RunSQL StingSql + DoCmd.SetWarnings 来运行查询的
改用CurrentDb.Execute SQL 后出现运行出错信息:“运行时错误 '3061' ; 参数不足,期待是1”,对此百思不得其解,望高手们指点一下迷津,感激不尽!

附:1、引用的是DAO3.6
      2、VBA语句为:    CurrentDb.Execute "INSERT INTO 送货单明细 ( 送货流水号, 工件序号, 送货数, 送货类型, 送货单价, 批量折扣 ) SELECT 添加工件到送货单.送货流水号, 添加工件到送货单.工件序号, 添加工件到送货单.送货数, 添加工件到送货单.送货类型, 添加工件到送货单.送货单价, 添加工件到送货单.批量折扣 FROM 添加工件到送货单;"
      3、换用Docmd.RunSQL 该查询正常运行
作者: zhuyiwen    时间: 2004-2-16 20:07
试试:

Dim DB As DAO.Database

Set DB = CurrentDb

DB.Execute "INSERT INTO 送货单明细 ( 送货流水号, 工件序号, 送货数, 送货类型, 送货单价, 批量折扣 ) SELECT 添加工件到送货单.送货流水号, 添加工件到送货单.工件序号, 添加工件到送货单.送货数, 添加工件到送货单.送货类型, 添加工件到送货单.送货单价, 添加工件到送货单.批量折扣 FROM 添加工件到送货单;"
作者: 疾风    时间: 2004-2-16 22:35
多谢朱总的指教,不过还是不行,还是那行出错的信息,如果换用注释的Docmd.RunSQL语句就正常运行,真是奇怪了!

附该命令按钮的VBA过程:

Private Sub Cmd加入到送货单_Click()
    Dim Dbs As DAO.Database
    Dim Rst As Recordset
    Dim Number As String
    Set Dbs = CurrentDb
    Set Rst = Dbs.OpenRecordset("送货单")
    Call 更新流水号("'送货流水号'")
        Number = Trim("S" & "-" & Format(Date, "yymmdd") & "-" & Format(DLookup("[记录值]", "流水号记录", "[流水号名称]='送货流水号'"), "000"))
        Rst.AddNew
        Rst("送货流水号") = Number
        Rst("客户序号") = Me.Combo选择客户
        Rst("送货日期") = Date
        Rst("制单") = Me.Combo制单
        Rst("仓管") = Me.Combo仓管
        Rst.Update
    Dbs.Execute "INSERT INTO 送货单明细 ( 送货流水号, 工件序号, 送货数, 送货类型, 送货单价, 批量折扣 ) SELECT 添加工件到送货单.送货流水号, 添加工件到送货单.工件序号, 添加工件到送货单.送货数, 添加工件到送货单.送货类型, 添加工件到送货单.送货单价, 添加工件到送货单.批量折扣 FROM 添加工件到送货单;"
    Dbs.Close
'    DoCmd.SetWarnings False
'    DoCmd.RunSQL ("INSERT INTO 送货单明细 ( 送货流水号, 工件序号, 送货数, 送货类型, 送货单价, 批量折扣 ) SELECT 添加工件到送货单.送货流水号, 添加工件到送货单.工件序号, 添加工件到送货单.送货数, 添加工件到送货单.送货类型, 添加工件到送货单.送货单价, 添加工件到送货单.批量折扣 FROM 添加工件到送货单;")
'    DoCmd.SetWarnings True
End Sub
作者: zhuyiwen    时间: 2004-2-16 23:25
如果换成

CurrentProject.Connection.Execute "INSERT INTO 送货单明细 ( 送货流水号, 工件序号, 送货数, 送货类型, 送货单价, 批量折扣 ) SELECT 添加工件到送货单.送货流水号, 添加工件到送货单.工件序号, 添加工件到送货单.送货数, 添加工件到送货单.送货类型, 添加工件到送货单.送货单价, 添加工件到送货单.批量折扣 FROM 添加工件到送货单"

可行吗?
作者: 疾风    时间: 2004-2-16 23:47
试过了,出错的信息为:“运行时错误'-2147217904  (80040e10)':至少一个参数没有被指定值”(注:数据库使用Access2002格式,同时引用DAO3.6和ADO2.7)

开始的时候我两种都试过了,觉得DAO的出错信息比ADO的出错信息要短,可能比较容易解决吧。

其实如果真的不行,用Docmd.RunSQL也不影响使用,再次感谢朱总的支持。
作者: zhuyiwen    时间: 2004-2-17 06:08
以下是引用疾风在2004-2-16 15:46:34的发言:
试过了,出错的信息为:“运行时错误'-2147217904  (80040e10)':至少一个参数没有被指定值”(注:数据库使用Access2002格式,同时引用DAO3.6和ADO2.7)

开始的时候我两种都试过了,觉得DAO的出错信息比ADO的出错信息要短,可能比较容易解决吧。

其实如果真的不行,用Docmd.RunSQL也不影响使用,再次感谢朱总的支持。


能否把库挂上来? [em25]
作者: 疾风    时间: 2004-2-17 09:33
[attach]3507[/attach]

“进仓单”窗体上的“加到送货单”,现在用的是Docmd.RunSQL,可以正常使用,若换用其它那两种办法后就会出错!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3