none
ACCESS2010よりEXCEL編集/出力時に「エラー番号1004:アプリケーション定義またはオブジェクト定義のエラーです。」が発生 RRS feed

  • 質問

  • お世話になります。

    現在、ACCESS2003形式で作成したシステムをACCESS2010でも問題なく使用可能か検証作業を行っております。

    その際、ACCESS側からEXCELファイルを展開し、内容を編集/保存する処理の検証を行った所、

    ACCESS2003では発生しなかったエラーが発生しました。

    原因箇所を特定しようとデバッグモードのステップ実行を行ったのですが、

    ステップ実行を行うと問題なく処理が通ってしまい原因究明に至れませんでした。

    いろいろと試行錯誤して検証したところ、

    下記のようにADODBを使用して取得したレコードセットの値を直接セルに設定しようとすると発生するようです。

    ちなみにエクセル側には、保護設定等は一切かけていません。

    対策としては、CSTR関数等で型変換をかけることでとりあえず動作するようです。

    同様の現象が起きている方はいらっしゃいますでしょうか?

    デバッグモードでは通過するので、どうも腑に落ちません。

    よろしくお願い致します。

    (追記)

    投稿後にさらに検証を行っていたのですが、

    下記コードに該当する場合でも、エラーになる場合とならない場合があるようです。

    セル側の書式設定等が影響しているのかと思い、書式設定をコピーしてみても結果が一致しません…


    --------------------------------------------- < コード(簡略化してあります) > ------------------------

      Dim WS As Excel.Worksheet 

      Dim RS As New ADODB.Recordset

      Dim Mycn As New ADODB.Connection

      Set Mycn = CurrentProject.Connection

      RS.Open SQL文, Mycn, adOpenStatic, adLockReadOnly

      WS.Cells(行番号,列番号).Value = RS!取得した列名   ←ココで発生

    -------------------------------------------------------------------------------------------------------------

    --------------------------------------------- < エラー番号/エラー名 > -------------------------------

      エラー番号 : 1004

      エラー内容 : アプリケーション定義またはオブジェクト定義のエラーです。

    -------------------------------------------------------------------------------------------------------------







    2013年12月6日 0:09

すべての返信

  • Access 2003 で Excel ファイルを出力するアプリを開発中に、ステップ実行では出ないエラーが発生するということはありましたね。
    ずいぶん前のことなのでどんな内容だったかは忘れてしまいました。

    そのときは結局 Access の VBA を使わずに別の方法を取ることで解決してしまいました。

    大した情報でなくてすみません。

    2013年12月6日 2:04
  • >galacoさん

    返信ありがとうございます。

    なるほど、ステップ実行では出ないエラーというのは結構あるものなのですね…

    しかし、今回の件はACCESS2003と2010で挙動が違うところが気になります。

    2013年12月6日 3:15