小编phi*_*ool的帖子

将存储过程返回值分配给VBA变量

这应该是真的很容易,但我还没有找到一个真正简洁的答案.我在sql server中有一个非常简单的存储过程,它返回一个整数值.我想要做的就是将返回值转换为变量以便在Access中使用.

存储过程:

ALTER PROCEDURE [dbo].[out_GetNextID]
@NextSumID integer
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

-- Insert statements for procedure here
SELECT @NextSumID = IDENT_CURRENT('Outage Summary')+IDENT_INCR('Outage Summary')
RETURN @NextSumID
END
Run Code Online (Sandbox Code Playgroud)

我正在使用ADODB来执行存储过程,我不得不问这个问题,但是在运行cmd.Execute之后如何访问Access中的返回值?提前谢谢,抱歉这个蹩脚的问题.

sql-server ms-access vba stored-procedures

6
推荐指数
1
解决办法
8478
查看次数

从sql server中的记录中选择上个月的第一天

我有一个表有一个名为StartDateTime存储日期时间值的列.我需要一份声明,它将返回当前记录上个月第一天的日期.因此,如果存储的日期是2006-06-17 08:23:42.000语句将返回2006-05-01 00:00:00.000,重要的是如果存储的日期是2006-01-17 08:23:42.000语句将返回2005-11-1 00:00:00.000

如果我可以使用DATEBYPARTS这似乎很简单,但不幸的是我不能.我试过用

CAST( 
   CAST( Year([StartDateTime]) as varchar(4) ) 
   + '-' + 
   CAST( (Month([StartDateTime])-1) as varchar(2) ) 
   + '-' + 
   CAST( '1' as varchar(2) ) 
AS DATETIME )
Run Code Online (Sandbox Code Playgroud)

但它在1月1日的日期出错,并给出错误"将char数据类型转换为日期时间数据类型会导致超出范围的日期时间值."

sql-server-2008

2
推荐指数
1
解决办法
1497
查看次数

MS 访问溢出错误

当此行运行时,我在 Access 中收到溢出错误

intAT = Nz(DLookup("at_ID", "qryAT", "at_sc_ID=" & Me.sc_ID & " AND at_OT=0"), 0)
Run Code Online (Sandbox Code Playgroud)

如果我Debug.Print Nz(DLookup("at_ID", "qryAT", "at_sc_ID=" & Me.sc_ID & " AND at_OT=0"), 0)在该行之前添加,它会很好地打印 id 号,但在下一行的分配过程中仍然出错。

我还可以通过向查询添加一个条件来使其工作,该条件将所有结果限制为在特定日期和时间之前发生的结果。它只能将查询限制在该特定时间之前,而不是在更早的时间之后。如果包含该时间之后的任何记录,它将再次溢出。我查看了在那之后输入的数据,一切看起来都很好,但我不确定我应该寻找什么。在at_ID与导致它失败的记录相关联是32838没有什么帮助的。

ms-access vba

2
推荐指数
1
解决办法
6628
查看次数