将 Access table 的日期值作为参数传递给 SQL 服务器的存储过程
Pass Access table's date value as a parameter to SQL Server's stored procedure
我在 SQL Server 2016 中有一个名为 usp_createRecord
的存储过程,它接收两个参数 start_date
和 end_date
。
我在 MS Access 中有一个名为 MyReport
的 table,它有 8 列 - 其中 2 列是 startDate
和 endDate
。
我需要将 MS Access 中的日期值作为参数传递给 SQL 服务器的存储过程。执行存储过程并在MS Access中显示
工作簿。
希望我说清楚了。
我认为您需要一个查询,其中包含一个调用 VBA 函数的字段,该函数传递您的参数,return 是传递查询的值,其 SQL
已确定在运行时。
如果您为大量行调用类似的函数,它会很慢。
例如,您需要通过与 SQL 服务器的连接进行直通查询。我称之为 qry_PT_createRecord
.
然后你需要 VBA 中的 public function
和你传递的两个 date
参数,它修改传递查询的 sql
属性,比如:
Public Function g_createRecord(startDate As Date, endDate As Date) As Integer
Dim db As Database
Dim qdef As QueryDef
Dim sql As String
Set db = CurrentDb()
Set qdef = db.QueryDef("qry_PT_createRecord")
qdef.sql = "exec usp_createRecord " & startDate & "," & endDate
g_createRecord = qdef.Execute
End Function
然后您需要一个查询来显示来自 MyReport
的字段,调用该函数,然后 return sp 的值(如果有的话)。我将该查询称为 qry_createRecord
。 SQL 看起来像:
Select
ID,
startDate,
endDate,
g_createRecord(startdate,enddate)
from
myReport
我在 SQL Server 2016 中有一个名为 usp_createRecord
的存储过程,它接收两个参数 start_date
和 end_date
。
我在 MS Access 中有一个名为 MyReport
的 table,它有 8 列 - 其中 2 列是 startDate
和 endDate
。
我需要将 MS Access 中的日期值作为参数传递给 SQL 服务器的存储过程。执行存储过程并在MS Access中显示 工作簿。
希望我说清楚了。
我认为您需要一个查询,其中包含一个调用 VBA 函数的字段,该函数传递您的参数,return 是传递查询的值,其 SQL
已确定在运行时。
如果您为大量行调用类似的函数,它会很慢。
例如,您需要通过与 SQL 服务器的连接进行直通查询。我称之为 qry_PT_createRecord
.
然后你需要 VBA 中的 public function
和你传递的两个 date
参数,它修改传递查询的 sql
属性,比如:
Public Function g_createRecord(startDate As Date, endDate As Date) As Integer
Dim db As Database
Dim qdef As QueryDef
Dim sql As String
Set db = CurrentDb()
Set qdef = db.QueryDef("qry_PT_createRecord")
qdef.sql = "exec usp_createRecord " & startDate & "," & endDate
g_createRecord = qdef.Execute
End Function
然后您需要一个查询来显示来自 MyReport
的字段,调用该函数,然后 return sp 的值(如果有的话)。我将该查询称为 qry_createRecord
。 SQL 看起来像:
Select
ID,
startDate,
endDate,
g_createRecord(startdate,enddate)
from
myReport