1

所以我在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?

4

2 回答 2

3

Nz在应用数值转换函数之前,用于转换文本字段中的 Null 。我选择CDbl了转换函数。

oSheet.Range("A" & Count).Value = CDbl(Nz(rsEPH("Value1"), "0"))

但你提到除以 100,所以也许你想要这个......

oSheet.Range("A" & Count).Value = CDbl(Nz(rsEPH("Value1"), "0")) / 100
于 2013-09-25T14:43:38.307 回答
0

试试下面的代码

Do While Not rsEPH.EOF

  oSheet.Range("A" & Count).Value = IIf(IsNull(rsEPH("Value1")), 0, CDbl(rsEPH("Value1")))
    Count = Count + 1
    rsEPH.MoveNext

Loop
于 2013-09-25T14:48:01.480 回答