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。フィールドの 1 つは、Value1クエリ対象のテーブルにテキスト値として格納されます。しかし、それは実際には数です。数値に変換rsEPH("Value1")して (失敗した場合は Null または何かを返す)、それを 100 で割るにはどうすればよいですか?

4

2 に答える 2

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 に答える