所以我在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?
答案 0 :(得分: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
答案 1 :(得分: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