直到几天前,一切正常,然后我遇到了这个问题。我为Microsoft 365中的Access vba编写了一些代码,这些代码在某些本地和连接的表上运行SQL查询。此连接表之一具有设置为数据类型“数字-十进制”的字段。如前所述,几天前此字段开始返回空字符串。这是我尝试调查问题的几个步骤。
我在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
`它返回一个空字符串
我以这种方式修改代码
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
更改数据类型时,代码将在立即窗口中返回: String -> Number-Decimal
Single -> Number-Single precision
Double -> Number-Double precision
Integer -> Number-Integer
Long -> Number-Long
自几天前以来,vba似乎无法再将小数转换为字符串
我不拥有连接的表,因此无法更改数据类型。我尝试将问题报告给Office服务台,但由于与vba有关,所以他们无法解决问题。
有任何建议吗?
谢谢