ACCESS VBA中数据类型为数字-小数的问题

问题描述 投票:0回答:1

直到几天前,一切正常,然后我遇到了这个问题。我为Microsoft 365中的Access vba编写了一些代码,这些代码在某些本地和连接的表上运行SQL查询。此连接表之一具有设置为数据类型“数字-十进制”的字段。如前所述,几天前此字段开始返回空字符串。这是我尝试调查问题的几个步骤。

  1. 我制作了已连接表的本地副本,以确保问题并非来自外部。没有区别
  2. 我创建了一个简单的查询访问权限-SELECT * FROM [NameTable],所有数据都在其中
  3. 我在vba中运行相同的查询,所讨论的字段返回空字符串
  4. 我在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. 我将表的数据类型更改为Number-Integer,Long,Single和Double,在所有这些情况下,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 更改数据类型时,代码将在立即窗口中返回: String -> Number-Decimal Single -> Number-Single precision Double -> Number-Double precision Integer -> Number-Integer Long -> Number-Long

自几天前以来,vba似乎无法再将小数转换为字符串

我不拥有连接的表,因此无法更改数据类型。我尝试将问题报告给Office服务台,但由于与vba有关,所以他们无法解决问题。

有任何建议吗?

谢谢

ms-access access-vba
1个回答
0
投票

您被最近的错误击中:

Access VBA/DAO code may crash or report incorrect data for Decimal columns

请注意随附的临时解决方法链接。

© www.soinside.com 2019 - 2024. All rights reserved.