【发布时间】:2017-03-19 07:52:03
【问题描述】:
我目前正在为学校制作一个项目,我必须制作一个可以在其中创建订单的程序。 当我尝试创建订单时,我收到此错误消息。
将数据类型 Nvarchar 转换为 Int 时出错。
如果这是一个很容易被发现的非常基本的问题,我很抱歉。我和我的项目成员都是初级程序员,但我们根本无法发现哪里出了问题。
我们在vba中执行的代码是这样的:
Set rs = DbConn.Execute("EXEC spOrderPlaatsen '" & Me.tbTijd & "', " & Me.klantnr & ", '" & Me.tbOphaaldatum & "', '" & Me.tbAfleverdatum & "', '" & Me.tbOphaaladres & "', " & Me.tbPalletnr & ", " & Me.tbAantalpallets & "")
这段代码执行的是我们的存储过程。 存储过程如下所示。
CREATE PROCEDURE spOrderPlaatsen
(
@tijd time(0),
@klantnr integer,
@ophaaldatum date,
@afleverdatum date,
@palletnr integer,
@aantal integer,
@Adres Varchar(255)
)
AS
BEGIN TRANSACTION
DECLARE @ordernr int
DECLARE @besteldatum date
set @besteldatum = getdate()
SELECT @ordernr = MAX(o.ordernr) + 1
FROM orders o
insert into orders values (@ordernr, @besteldatum, @tijd, @klantnr, @ophaaldatum, @afleverdatum, @adres)
insert into orderregel values (@ordernr, @palletnr, @aantal)
IF @@ERROR <> 0
BEGIN
ROLLBACK
RAISERROR ('Error tijdens het plaatsen van order.', 16, 1)
RETURN
END
COMMIT
go
不知何故,我们得到了一个我们找不到的转换错误。
谁能帮我们解决这个问题?将不胜感激
【问题讨论】:
-
这段代码看起来像 SQL Server,而不是 MS Access。请适当标记您的问题。
-
对于 VBA 部分:
Debug.Print您的 SQL 语句,请参阅 How to debug dynamic SQL in VBA
标签: sql sql-server vba stored-procedures