WindowsXPでAccess2002とExcel2002を使用しています。
AccessのフォームとレポートでExcelのシート内容を表示させたいと思いますが、OLEオブジェクトでそのまま挿入すると容量が大きくなりすぎます。そこで、過去の質問NO.605269のように、テーブルにExcelファイルのフルパスを格納するフィールドを1つ設け、そのパスをオブジェクトフレームコントロールのSourceDocプロパティに代入したのですが、うまくいきません。
連結オブジェクトフレームでは「OLEオブジェクトは空です」とメッセージが出てコントロールには何も表示されません。非連結オブジェクトフレームではどのレコードにも、最初にコントロールを設定したときに表示されるダイアログで指定したExcelファイルしか表示されません。
どうすればいいのか、アドバイスをお願いします。
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
SourceDoc以外のプロパティも記述したら、表示できました!!
レポートも試してみます。
本当にありがとうございました(*^_^*)
No.1
- 回答日時:
もし本当に
>>最初にコントロールを設定したときに表示されるダイアログで指定したExcelファイルしか表示されません。
ここまでうまく出来ているのなら後はイベントの問題だけのような気がするのですが。どのタイミングでSourceDocに設定されているのでしょう?
例えばボタンをひとつつけてそのボタンクリックでコードを走らせたりするとどうなるんでしょうか。
この回答への補足
早速アドバイスありがとうございます。
フォームのレコード移動時のイベントに下記のように記述しました。
If IsNull(Me.エクセルファイルのパス名) Then
MsgBox "パス名が入力されていません"
Else
Me.エクセルファイル表示.SourceDoc = Me.エクセルファイルのパス名
End If
念のためにコマンドボタンを付けて、クリック時のイベントに同じコードを貼り付けてみましたが、結果は同じでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Excel(エクセル) [クイックアクセスツールバー]の設定ファイルの格納場所について、 5 2023/04/21 14:43
- Visual Basic(VBA) Excel VBA オブジェクトマクロ 使用指定について お詳しい方教えてください。 共通エクセルフ 2 2023/03/14 17:26
- Excel(エクセル) マクロでボタンにつける名前がどこに設定されているかわからないケースがありました。 1 2023/06/19 19:37
- Access(アクセス) accessでexcelを読み込む時のデータ型 1 2022/03/28 19:45
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Access(アクセス) Access2016でフォーム内にExcelの複数シートを 表示させるイメージで複数テーブルの デー 1 2022/11/25 15:30
- Visual Basic(VBA) Excel VBAについて、 フォルダ内のファイルを全て開きたい場合、 FSOを使えば、Dirは使わ 1 2023/01/27 13:18
- その他(パソコン・スマホ・電化製品) CMD等でPC操作(excel開く等)を自動化させたい 1 2023/03/15 09:53
- CAD・DTP Autocad Scriptファイルからの入力とコマンドラインからの入力が違う 1 2023/08/01 09:13
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
Accessのフォーム上にエクセルのシートを表示させたい!
Visual Basic(VBA)
-
Accessの連結・非連結オブジェクトフレーム
PowerPoint(パワーポイント)
-
OLEオブジェクトを自動でサイズ調整して枠内に収めたい
その他(データベース)
-
-
4
【ACCESS】フォーム名/コントロール名を文字列型変数で指定するには
Access(アクセス)
-
5
AccessのOLEオブジェクトについて
Access(アクセス)
-
6
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
7
ACCESSでコントロールソースの変更
Access(アクセス)
-
8
ACCESSでテーブルのチェックをまとめて外すには?
Access(アクセス)
-
9
ACCESS クエリの抽出条件で全てを抽出したい
PowerPoint(パワーポイント)
-
10
ACCESS ADOでupdateが効かない
その他(データベース)
-
11
access クエリでIIF文で抽出条件なし
Access(アクセス)
-
12
ACCESSのレポートにWORDで作った文書を貼り付けるには?
Access(アクセス)
-
13
「#エラー」の回避
Access(アクセス)
-
14
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
15
アクセスvbaでエクセルブックを保存
その他(Microsoft Office)
-
16
Access2010マクロ メッセージボックスの改行
その他(Microsoft Office)
-
17
メッセージボックスに表示する文字を大きくしたい
Excel(エクセル)
-
18
ACCESS2010 WEBブラウザーコントロールにPDFを表示
Microsoft ASP
-
19
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA エンターキーでイベントに...
-
アクセスVBAのMe!と[ ]
-
エクセルVBAでセル番地を指定し...
-
日本語の文字化けを直す方法
-
エクセルVBA初心者です。オブジ...
-
Excel2007 でのチェックボック...
-
ExcelのシートをAccessで表示し...
-
Access からオブジェクトとして...
-
「SHDocVw」の意味
-
クリスタルレポートのプレビュ...
-
構造体の静的な初期化
-
pictureBoxの絵保存について。
-
Excel VBA でPictureBoxオブジ...
-
ACCESSマクロ、Me![氏名] その...
-
アクセス 名前のつけ方について。
-
【エクセル】複数のTextBoxに共...
-
カッコ付けのオブジェクト名を...
-
現在アクティブになっているオ...
-
【エクセルのマクロ】クリップ...
-
Accessのフォーム上にエクセル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA エンターキーでイベントに...
-
アクセスVBAのMe!と[ ]
-
文字列で小数点以下の0を削除し...
-
Excel VBAでマウスの左クリック...
-
【エクセルのマクロ】クリップ...
-
エクセルVBAでセル番地を指定し...
-
Accessのフォーム上にエクセル...
-
コードでオブジェクトを最前面に
-
日本語の文字化けを直す方法
-
現在アクティブになっているオ...
-
Imageコントロールにグラフを表...
-
Excel2007 でのチェックボック...
-
PowerpointVBAで指定のShapeオ...
-
Access からオブジェクトとして...
-
エクセルのデータをwebフォーム...
-
【エクセル】複数のTextBoxに共...
-
[C#] DataGridViewの項目名
-
カッコ付けのオブジェクト名を...
-
ExcelのシートをAccessで表示し...
-
ユーザーフォームのインポート...
おすすめ情報