• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ExcelのシートをAccessで表示したい)

ExcelのシートをAccessで表示する方法

このQ&Aのポイント
  • WindowsXPでAccess2002とExcel2002を使用しています。AccessのフォームとレポートでExcelのシート内容を表示させたいと思いますが、OLEオブジェクトでそのまま挿入すると容量が大きくなりすぎます。
  • 過去の質問NO.605269のように、テーブルにExcelファイルのフルパスを格納するフィールドを1つ設け、そのパスをオブジェクトフレームコントロールのSourceDocプロパティに代入したのですが、うまくいきません。
  • 連結オブジェクトフレームでは「OLEオブジェクトは空です」とメッセージが出てコントロールには何も表示されません。非連結オブジェクトフレームではどのレコードにも、最初にコントロールを設定したときに表示されるダイアログで指定したExcelファイルしか表示されません。どうすればいいのか、アドバイスをお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.2

んーアクセスのヘルプを読むとSourceDocの正式な使い方は以下のような感じらしいのですが。具体的なプロパティ名が分かっているなら、使い方はヘルプを読んだ方がはやいかと思いますよ。 OLE1はエクセルファイル表示に置き換えて。 --- Sub Command1_Click ' クラス名を設定します。 OLE1.Class = "Excel.Sheet" ' オブジェクトの種類を指定します。 OLE1.OLETypeAllowed = acOLELinked ' OLE 元ファイルを指定します。 OLE1.SourceDoc = "C:\Excel\Oletext.xls" ' リンクするデータを指定します。 OLE1.SourceItem = "R1C1:R5C5" ' リンクされるオブジェクトを作成します。 OLE1.Action = acOLECreateLink ' コントロール サイズを調整します。 OLE1.SizeMode = acOLESizeZoom End Sub

minami373
質問者

お礼

SourceDoc以外のプロパティも記述したら、表示できました!! レポートも試してみます。 本当にありがとうございました(*^_^*)

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.1

もし本当に >>最初にコントロールを設定したときに表示されるダイアログで指定したExcelファイルしか表示されません。 ここまでうまく出来ているのなら後はイベントの問題だけのような気がするのですが。どのタイミングでSourceDocに設定されているのでしょう? 例えばボタンをひとつつけてそのボタンクリックでコードを走らせたりするとどうなるんでしょうか。

minami373
質問者

補足

早速アドバイスありがとうございます。 フォームのレコード移動時のイベントに下記のように記述しました。 If IsNull(Me.エクセルファイルのパス名) Then MsgBox "パス名が入力されていません" Else Me.エクセルファイル表示.SourceDoc = Me.エクセルファイルのパス名 End If 念のためにコマンドボタンを付けて、クリック時のイベントに同じコードを貼り付けてみましたが、結果は同じでした。

すると、全ての回答が全文表示されます。

関連するQ&A