|
存储过程如下:
CREATE proc sp_prodddrpt
(
@ddate datetime
)
as
begin
--set @ddate='2008-06-21' --查询的日期
select b.cinvcode 存货编码,inv.cinvname 存货名称,inv.cinvstd 规格,inv.cinvM_unit 单位,
sum(case when a.ddate=@ddate then isnull(b.iquantity,0) else 0 end) 日产量,
sum(case when month(a.ddate)=month(@ddate) then isnull(b.iquantity,0) else 0 end) 本月产量,
sum(case when a.ddate<=@ddate then isnull(b.iquantity,0) else 0 end) 本年产量,
max(cs.iquantity) 结存数,' ' 备注
from rdrecord a join rdrecords b on a.id=b.id
join inventory inv on inv.cinvcode=b.cinvcode
join currentstock cs on b.cinvcode=cs.cinvcode and cs.cwhcode not like '04'
where a.brdflag='1' and a.cvouchtype='10'
group by b.cinvcode,inv.cinvname,inv.cinvstd,inv.cinvM_unit
end
使用VBA从EXCEL表格传输参数给存储过程 并执行该存储过程
代码片段:
sub rep()
dim sql as string,cn as new adodb.conection,rs as new adodb.recordset
dim a
a=cells(1,1)
sql="exec sp_prodddrpt a"
cn.open" "此处连接数据库的
rs.open sql,cn
执行到此 报错 说“字符串转换成DATETIME类型错误”
或者“nvarchar转换成DATETIME类型错误”
我尝试在数据库表格增加一列把那个DATETIME类型转换成字符型
然后用新增加的列代替原来DATETIME类型列 执行 仍然报上面错误
请高手指教 |
|