【发布时间】:2020-10-06 15:01:28
【问题描述】:
直到几天前一切正常,然后我遇到了这个问题。 我为 Microsoft 365 中的 Access vba 编写了一些代码,这些代码在一些本地和连接的表上运行 SQL 查询。 此连接表之一的字段设置为数据类型 Number - Decimal。正如我提到的,几天前这个字段开始返回空字符串。这是我尝试调查问题的几个步骤。
- 我制作了已连接表的本地副本,以确保问题不是来自外部。没有区别
- 我创建了一个简单的查询访问 - SELECT * FROM [NameTable] 并且所有数据都在那里
- 我在 vba 中运行相同的查询,有问题的字段返回一个空字符串
-
我在 vba 中运行访问查询
Set qdfNew = dbs.QueryDefs("Pippo") Set RS = qdfNew.OpenRecordset If Not (RS.EOF And RS.BOF) Then RS.MoveLast RS.MoveFirst For iCurRec = 0 To RS.RecordCount - 1 Debug.Print RS.Fields("HSL_QUANTITA").Value RS.MoveNext Next iCurRec End If RS.Close
它返回一个空字符串 5. 我将表格的数据类型更改为数字 - 整数、长整数、单精度和双精度,在所有这些情况下,vba 中的查询都返回正确的值 6.我这样修改代码
Set qdfNew = dbs.QueryDefs("Pippo")
Set RS = qdfNew.OpenRecordset
If Not (RS.EOF And RS.BOF) Then
RS.MoveLast
RS.MoveFirst
For iCurRec = 0 To RS.RecordCount - 1
Debug.Print TypeName(RS.Fields("HSL_QUANTITA").Value)
RS.MoveNext
Next iCurRec
End If
RS.Close
更改数据类型时,代码会在即时窗口中返回: 字符串 -> 数字十进制 单 -> 数字-单精度 双精度 -> 数字双精度 整数 -> 数字整数 Long -> Number-Long
看起来从几天前 vba 就不能再将小数转换为字符串了
我不拥有已连接的表,因此我无法更改数据类型。 我尝试将问题报告给 Office 帮助台,但由于与 vba 相关,他们无法解决问题。
有什么建议吗?
谢谢
【问题讨论】: