【发布时间】:2013-09-25 22:48:23
【问题描述】:
所以我在 Access 中有以下代码:
Dim db As DAO.Database
Dim qdEPH As DAO.QueryDef
Dim rsEPH As DAO.Recordset
Set qdEPH = DBEngine(0)(0).QueryDefs("MyQuery")
qdEPH.Parameters(0) = Text10.Value
Set db = CurrentDb
Set rsEPH = qdEPH.OpenRecordset
Set oExcel = CreateObject("Excel.Application")
Set oBook = oExcel.Workbooks.Add
Set oSheet = oBook.Worksheets("Sheet1")
oSheet.Activate
Dim Count as Long
Count = 1
Do While Not rsEPH.EOF
oSheet.Range("A" & Count).Value = rsEPH("Value1")
Count = Count + 1
rsEPH.MoveNext
Loop
用户在表单上的文本框Text10 中输入一个值,然后单击一个按钮来运行上面的代码。它运行查询MyQuery 并将结果转储到名为rsEPH 的记录集中。其中一个字段Value1 以文本值的形式存储在被查询的表中。然而,它实际上是一个数字。如何将rsEPH("Value1") 转换为数字(如果失败则返回 Null 或其他内容)然后除以 100?
【问题讨论】:
-
如果您需要小数精度,请尝试
=CDbl(rsEPH("Value1")),如果您只需要整数,请尝试=CLng(rsEPH("Value1"))? -
这样,我得到
Run-time error: 94 - Invalid Use of Null。Value1中的一条或多条记录可能没有任何内容。有没有办法处理 Null 值?在 C# 中,我会做TryParse或类似的事情。 -
看起来 Access 有一个内置函数来转换空值,请参阅@HansUp 的回答 :)