Office中国论坛/Access中国论坛

标题: 微软自己也没解决的存储过程问题 [打印本页]

作者: kelind    时间: 2008-11-20 22:03
标题: 微软自己也没解决的存储过程问题
存储过程1: ALTER PROCEDURE dbo.存储过程1 (@开始日期 datetime, @结止日期 datetime) AS SELECT id, date_id, pname, dress FROM dbo.worker WHERE (date_id BETWEEN @开始日期 AND @结止日期) 测试成功。 激活存储过程,在对话框中分别输入: 2008-10-1,2008-10-30 成功。但:在窗体上放两个文本框,btime ,otime 命令控件代码如下: CurrentProject.Connection.Execute ("exec 存储过程1 @开始日期=" & Me.btime & ", @结止日期=" & Me.otime & "") 在 btime 和 otime 中输入2008-10-1,2008-10-30 显示:运行时错误 -2147217900 第一行: "-"附近有语法错误。
       网友教我加单引号,还是不行。什么'#"& me.btime &"#'
      #" & format(me.btime,"yyyy-mm-dd") &"#全试过了,还是不行。
      打开access2003微软自带的项目,惊奇发现,原来微软自已也没有解决,不信请看看它的“各年销售”。
     有哪位解决了,足可以当微软贵宾。
作者: kelind    时间: 2008-11-20 23:18
[:29] 帮帮吧,我头都大了。[:29]
作者: tmtony    时间: 2008-11-21 01:29
没有试过,不过你试试 使用添加参数传给存储过程的方法 是否可以
作者: kelind    时间: 2008-11-21 08:38
dim btime as datetime
dim otime as datetime
btime=me.btime
otime=me.otime
CurrentProject.Connection.Execute ("exec 存储过程1 @开始日期=" & btime& ", @结止日期=" & otime & "") 还是不行.
CurrentProject.Connection.Execute ("exec 存储过程1 @开始日期='" & btime & "', @结止日期='" & otime & "'") 也不行.
   请各位帮想想招吧,谢了.
作者: liwen    时间: 2008-11-21 11:42
尝试将日期参数作字符串参数,再在存储过程中还原为日期。
作者: dongzhaohui    时间: 2008-11-21 13:48
不太懂
作者: kelind    时间: 2008-11-23 23:06
按版主的方法试过,还是不行。在access的北风中测试也不行。有sql方面有经验的朋友,帮一下吧。先谢了。
作者: liwen    时间: 2008-11-26 14:31
CurrentProject.Connection.Execute ("exec 存储过程1 @开始日期='" & btime & "', @结止日期='" & otime & "'")

这样应该没什么问题,不过你的存储过程是选择查询,你执行这样的代码不会返回任何值,存储过程应该也是运行了,但你看不到结果视图,而不应该是出现语法错误。如果你是含更新或删除语句的存储过程,就应该可以看到结果的改变。




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