Passthrough 不再 return 十进制值
Passthrough does not return decimal values anymore
希望我没有问一个已经存在的问题。经过几个小时的搜索,没有在互联网上找到解决方案。
我认为这个问题很新,可能是最近更新引起的。
在我的 MS Access VBA 代码中,我使用直通查询从我的 MS SQL 服务器上的 SP 获取结果。
几个星期以来,我不再收到十进制值作为结果,在这种情况下,这些值只是 null。
这是一个非常简单的代码示例:
Dim db As DAO.Database
Set db = CurrentDb
Dim qdf As DAO.QueryDef
Dim rs As DAO.Recordset
Dim strSQL As String
strSQL = "SELECT 'abcde' AS string, '2020-07-01' AS date, 123.45 AS decimal, 3 as int"
Set qdf = db.CreateQueryDef("")
qdf.Connect = [here is my connectiong string]
qdf.SQL = strSQL
qdf.ReturnsRecords = True
Set rs = qdf.OpenRecordset
使用该结果时,例如通过将其复制到 Excel 文件中,字符串;日期和整数值按要求写入。只有十进制值是 null。
希望我没有错过这里的任何重要信息。如果您有任何问题,请告诉我。
提前感谢您的帮助!
BR,
马丁
您似乎正在尝试 cast/type 您的价值观。您实际上是在创建计算字段。
用散列包围您的日期字符串表示这些值是日期:
#2020-07-01#
使用适当的 C 函数转换所有数值:
Cdbl(123.45)
CInt(3)
您的代码似乎可以正常工作,现在却不能,这可能是您最近在 Microsoft Access 中遇到了一个错误:Access VBA/DAO code may crash or report incorrect data for Decimal columns,现在显然已修复。
此致,
希望我没有问一个已经存在的问题。经过几个小时的搜索,没有在互联网上找到解决方案。 我认为这个问题很新,可能是最近更新引起的。
在我的 MS Access VBA 代码中,我使用直通查询从我的 MS SQL 服务器上的 SP 获取结果。 几个星期以来,我不再收到十进制值作为结果,在这种情况下,这些值只是 null。
这是一个非常简单的代码示例:
Dim db As DAO.Database
Set db = CurrentDb
Dim qdf As DAO.QueryDef
Dim rs As DAO.Recordset
Dim strSQL As String
strSQL = "SELECT 'abcde' AS string, '2020-07-01' AS date, 123.45 AS decimal, 3 as int"
Set qdf = db.CreateQueryDef("")
qdf.Connect = [here is my connectiong string]
qdf.SQL = strSQL
qdf.ReturnsRecords = True
Set rs = qdf.OpenRecordset
使用该结果时,例如通过将其复制到 Excel 文件中,字符串;日期和整数值按要求写入。只有十进制值是 null。
希望我没有错过这里的任何重要信息。如果您有任何问题,请告诉我。
提前感谢您的帮助!
BR, 马丁
您似乎正在尝试 cast/type 您的价值观。您实际上是在创建计算字段。
用散列包围您的日期字符串表示这些值是日期:
#2020-07-01#
使用适当的 C 函数转换所有数值:
Cdbl(123.45) CInt(3)
您的代码似乎可以正常工作,现在却不能,这可能是您最近在 Microsoft Access 中遇到了一个错误:Access VBA/DAO code may crash or report incorrect data for Decimal columns,现在显然已修复。
此致,