アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (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
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/10/18 17:38

もし本当に


>>最初にコントロールを設定したときに表示されるダイアログで指定したExcelファイルしか表示されません。

ここまでうまく出来ているのなら後はイベントの問題だけのような気がするのですが。どのタイミングでSourceDocに設定されているのでしょう?
例えばボタンをひとつつけてそのボタンクリックでコードを走らせたりするとどうなるんでしょうか。

この回答への補足

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

補足日時:2003/10/18 12:11
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A