ママのスキンケアのお悩みにおすすめアイテム

Access2002について教えてください。
Accessの連結・非連結オブジェクトフレームというのがありますが、具体的にそれを配置するとどういうことに使うのでしょうか?
どういったものか教えてください。

A 回答 (2件)

簡単に言うと



連結オブジェクトフレーム:
  例えば、取扱商品のイメージ画像をフォームで表示したい場合に利用。
  (テーブルのOLEオブジェクト型に対応。)

非連結オブジェクトフレーム:
  フォームのデザインに利用。

説明が難しいのですが、お分かりいただけますか?
    • good
    • 0
この回答へのお礼

ありがとうございます。少しわかったような気がします。

お礼日時:2005/09/29 01:22

私は非連結オブジェクトフレームを使ったことはないのですが、テキストボックスの連結/非連結のように、



・連結オブジェクトフレーム:
  レコード毎に保存が必要な場合
・非連結オブジェクトフレーム:
  レコードに関係なく必要な場合
  (既存ファイル(1件)とのリンク、サンプルなど?)

に、使うものなのでは?

なお、もうひとつ似たものに「イメージ」があります。
これと非連結オブジェクトフレームの違いは、フォームビューでの編集が可能かどうか、だと思います。
(なので、単に背景として使用するのであれば、編集不可の「イメージ」で充分、と)
    • good
    • 1
この回答へのお礼

ありがとうございます。少しわかったような気がします。

お礼日時:2005/09/29 01:22

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QAccessのOLEオブジェクトについて

いつも大変お世話になっております。m(_ _)m
Accessで以下のようなDBを作りました。

(1)Access2003で、OLEオブジェクト型のフィールドを作る。
(2)OLEオブジェクト型のフィールドプロパティは以下のように設定
 1)OLEサイズ・・・クリップ
 2)OLE表示の種類・・・アイコン
 3)OLE更新設定・・・自動
 4)作成可能OLE・・・リンク
(3)このフィールドには、TIFファイルを挿入していきます。
 (2)の設定により、オブジェクトの挿入時は
 指定したパスにあるファイルをリンクで結び、
 アイコンが表示されます。

Access2003のPCで設定したオブジェクトは、どのバージョンのPCからも閲覧できます。しかし、Access2000のPCで同じことをやろうとすると、オブジェクトの挿入はでき、2000のパソコンではダブルクリックで閲覧可能ですが、2000で設定したオブジェクトを2003で見ようとすると
「OLEサーバーが登録されていません」
「OLEサーバーを再セットアップしてください」
と出て開くことができません。

これはどういうことなのでしょうか?

まとめます。
・2003で挿入したオブジェクトは、
 2003でも2000でも閲覧可能。
・2000で挿入したオブジェクトは、
 2000では見れるが、2003では見られない。
・エラー内容は、「OLEサーバーが登録されていません」です。

どうしたらいいのか教えてください。
よろしくお願いします。

いつも大変お世話になっております。m(_ _)m
Accessで以下のようなDBを作りました。

(1)Access2003で、OLEオブジェクト型のフィールドを作る。
(2)OLEオブジェクト型のフィールドプロパティは以下のように設定
 1)OLEサイズ・・・クリップ
 2)OLE表示の種類・・・アイコン
 3)OLE更新設定・・・自動
 4)作成可能OLE・・・リンク
(3)このフィールドには、TIFファイルを挿入していきます。
 (2)の設定により、オブジェクトの挿入時は
 指定したパスにあるファイルをリンクで結び、
...続きを読む

Aベストアンサー

「OLE」は、Access限定の機能ではなく、Windows自体の機能になり、どのプログラムで、動作するかデータを保持しています

・閲覧する際、起動するプログラムは?

と、言う事でファイル名で指定した場合、どのプログラムで使用するかは、Windows自体に依存します

OLEサーバに登録が無いと言うことは、多分閲覧で起動しているプログラムが違うものを使用している、プログラムが導入されていないと言う事だと思います

手としては、両方に導入されているペイント等でOLEを指定して登録するのが、良いのだと思いますがリンクの場合、それが可能だったか出来た記憶がないです

リンクにしている理由とかあります?
リンクで行うなら、ピクチャフレームでVBAにて自動読み込みを使用した方が、MDBファイルが小さく済む反面、共用ディスク上にファイルを置いておかないと、読込が出来ないとかの欠点が出てきたりします

現在のままでは、どういう解決へ持っていくのかも判らないですが・・・
・同じプログラムを導入する
・リンクをやめて、ペイント等のどのPCにも入ってるものを使用する
・MDBから、絵のファイルを読み込みに行き表示する
の解決法くらいしか手が無かったと思いますが・・・

「OLE」は、Access限定の機能ではなく、Windows自体の機能になり、どのプログラムで、動作するかデータを保持しています

・閲覧する際、起動するプログラムは?

と、言う事でファイル名で指定した場合、どのプログラムで使用するかは、Windows自体に依存します

OLEサーバに登録が無いと言うことは、多分閲覧で起動しているプログラムが違うものを使用している、プログラムが導入されていないと言う事だと思います

手としては、両方に導入されているペイント等でOLEを指定して登録するのが、良い...続きを読む

QAccessのRefresh・Requery・Repaintの違い

Requeryはもう一度ソースレコード(テーブル)を読み込むようです。このとき、テーブルの先頭レコードに移動してしまいます。
Refreshは最新のレコード(テーブル)を再表示するような気がします。レコードの移動は起こらない気がします。
Repaintは、VBAでキャプションなどを変更したとき使っています。
でも、よくわかっていません。
どんなときにどんなメソッドを使えばいいのでしょうか?
詳しい方、よろしくお願いいたします。

Aベストアンサー

たびたびすみません。
調べてたらこんなのがでてきました。
http://www.nurs.or.jp/~ppoy/access/access/acF007.html

参考URL:http://www.nurs.or.jp/~ppoy/access/access/acF007.html

QAccessのフォーム上にエクセルのシートを表示させたい!

いつもお世話になっています。宜しくお願いします。

現在Access2002、Excel2002をつかってタイトルのようなことを実現したいと
思っています。

現在やっていることは、
エクセルファイルはあらかじめ作成しておき、それをフォームにサブフォームの
ような形で表示しようと思っています。

しかしそのときに使うフォーム上のオブジェクトが分からず行き詰っています。

アクセスから
エクセルファイルのオープン、シートの参照、セルの参照は
アプリケーションオブジェクトを作ることで可能になったのですが、
フォーム上に表示する部分ができないのです。


基本的なことが理解できていないのかもしれませんが
お気づきの方が居られましたら
ご教授、宜しくお願いします。

Aベストアンサー

こんにちは。maruru01です。

環境が2000なのですが。

ツールボックスにある、「非連結オブジェクト」をフォームに置くと、[オブジェクトの挿入]ダイアログが開くので、そこで[ファイルから]をチェックして、エクセルファイルを指定すればそのまま張り付きます。
あとは、編集可/不可と使用可/不可の設定などをします。
コード上での設定は、Actionプロパティあたりを触ればよさそうです。
詳細はヘルプを参照して下さい。

QExcelのシートをAccessで表示したい

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

Aベストアンサー

んーアクセスのヘルプを読むと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の正式な使い方は以下のような感じらしいのですが。具体的なプロパティ名が分かっているなら、使い方はヘルプを読んだ方がはやいかと思いますよ。

OLE1はエクセルファイル表示に置き換えて。
---
Sub Command1_Click
' クラス名を設定します。
OLE1.Class = "Excel.Sheet"
' オブジェクトの種類を指定します。
OLE1.OLETypeAllowed = acOLELinked
' OLE 元ファイルを指定します。
OLE1.SourceDoc = "C:\Excel\Oletext.xls"
' リン...続きを読む

QAccessで作成したテーブルのOLEオブジェクトの使い方

Accessで作成したテーブルにデータ型(OLEオブジェクト型)で画像を取り込みできるようにしました。
取り込みした画像を開くためのフォームを作成して画像を開けるようにしました。
下記の内容です。

Private Sub Form_Open(Cancel As Integer)
Form.Caption = ProgName
End Sub

しかし「ビットマップ形式」ですと問題なく開くのですが、「JPG形式」ですと開けないのです。取り込みしたAccessテーブルのフィールドから直接だとひらけます。
Accessで作成したフォームから、「JPG形式」の画像を開くにはどうすればよろしいですか?
また、画像を1000件ほど取り込みすると大きいデータベースになってしまいます。Accessのデータベースのサイズは制限があるのかしら?
アドバイスいただけれは幸いです。

Aベストアンサー

Access のバージョンは?
んで Web で検索する努力はしましょうよ。
丸 1日ぐらい検索しっぱなしで悩まないと。

Google「access ole jpeg」で検索
http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=access+ole+jpeg&num=50

Access 2003 では以下のような制限があるようです。
■ Access 2003 で OLE オブジェクトとして JPEG および GIF 画像を取り扱う場合の注意事項
http://support.microsoft.com/kb/884484/ja

■ OLE オブジェクト型のフィールドに格納されているイメージが正しく表示されません
http://support.microsoft.com/kb/832508/ja

解決策としては JPEG を開ける OLE コンテナになるアプリケーションをインストールしておく。

Google「Access データベース サイズ 制限」で検索
http://www.google.com/search?hl=ja&num=50&q=Access+%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9+%E3%82%B5%E3%82%A4%E3%82%BA+%E5%88%B6%E9%99%90&lr=lang_ja

Access のバージョンは?
んで Web で検索する努力はしましょうよ。
丸 1日ぐらい検索しっぱなしで悩まないと。

Google「access ole jpeg」で検索
http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=access+ole+jpeg&num=50

Access 2003 では以下のような制限があるようです。
■ Access 2003 で OLE オブジェクトとして JPEG および GIF 画像を取り扱う場合の注意事項
http://support.microsoft.com/kb/884484/ja

■ OLE オブジェクト型のフィールドに格納されているイメージが正...続きを読む

QAccessのフォームで商品の画像を表示したい

画像を表示させた商品管理フォームを作りたいのですが、商品にリンクした画像をどうやって表示していいのかわかりません。
(商品のレコードをクリックする毎にその商品の画像
が表示できるようにしたいです)

下記のテーブルがあります。画像と商品は商品コードでつなぎます。

(1)商品テーブル
商品コード 例)A0001
商品名   例)ER-01

(2)画像テーブル
商品コード 例)A0001 
画像ファイル名 例)Photo0001.jpg
パス名 例)C\Photo\Photo0001.jpg

画像はリンクにするのか、埋め込みにするのか
もわからない状態です。
どうぞよろしくおねがいします。

Aベストアンサー

フォームにイメージコントロールで表示するか非連結オブジェクトで表示するかのどちらかになりますが
画像テーブルに画像のフルパスが入っているのであればリンクで表示する方が簡単です。
イメージを埋め込むとデータベースのサイズが増大して動作が遅くなる事もあります。
フォームのソースに画像テーブルの商品名・パス名もSQLステートメントやクエリで追加しておきます。
フォーム上にパス名のコントロールを配置します。パスを見せたくない場合は可視をいいえにして見えなくします。
イメージコントロールの名前をPhoto1とすると
フォームのプロパティで[レコード移動時]のイベントに
Private Sub Form_Current()
If Me![パス名] <>"" Then
   Me![Photo1].Picture=Me![パス名]
  Else
   Me![Photo1].Picture="" 'パスがない画像がない場合表示しない
 End If
End Sub
のように設定しフォーム上のパス名に入った画像のパス\ファイル名をPhoto1のPictureソースに代入させ表示します。

非連結オブジェクトで表示する場合はテーブルのフィールドをOLEオブジェクト型にしてデータベースにオブジェクトの挿入で画像をビットマップイメージで取り込みます。そのフィールドを指定するようにすればそのフィールドに挿入してある画像が表示できます。ビットマップのレコードとなるのでbmpで保存しておかないと出来ません。
画像も小さくてファイル数も少なければ問題ないとは思います。

フォームにイメージコントロールで表示するか非連結オブジェクトで表示するかのどちらかになりますが
画像テーブルに画像のフルパスが入っているのであればリンクで表示する方が簡単です。
イメージを埋め込むとデータベースのサイズが増大して動作が遅くなる事もあります。
フォームのソースに画像テーブルの商品名・パス名もSQLステートメントやクエリで追加しておきます。
フォーム上にパス名のコントロールを配置します。パスを見せたくない場合は可視をいいえにして見えなくします。
イメージコントロー...続きを読む

QAccess サブフォームでの選択行の取得

こんにちは。

Access初心者です。

サブフォームでテーブルの項目を表示させていますが、
選択された行を取得する方法はありますか?
サボフォームの下の方に現在選択されているレコード数が表示されてますが、その値でかまいません。

調べているのですが、なかなか検討がつきません。
宜しくお願い致します。

Aベストアンサー

フォーム名がフォーム1、サブフォームコントロールの名前がサブフォーム1だとすると、

Forms!フォーム1!サブフォーム1.Form.CurrentRecord

で取得できます。
(「Forms」と「Form」がありますのでご注意下さい)


また、フォーム1にコードを記述する場合であれば

Me!サブフォーム1.Form.CurrentRecord

サブフォーム1へのコード記述であれば

Me.CurrentRecord

という構文によっても、それぞれ取得が可能です。

QアクセスVBAのMe!と[ ]

基本的なことですみません。

アクセスのイベントプロシージャで、Me!ってありますけど、これはどういう意味なんでしょうか?

また、Me!の後に、Me!.~~と書く場合と、Me!.[~~]と書く場合がありますが、どこが違うのでしょうか?

Aベストアンサー

>プロシージャ内で[]を使う場合は、そのフォーム外のオブジェクトを使う場合と考えてよろしいでしょうか?
別のオブジェクトを使う場合だけではありません。
Hensu = Me![Text1]のようにHensuという変数に自身のTest1の値を代入する場合のように。
[]で括られているのがオブジェクト名やコントロール名だよという事。
クエリの抽出条件に存在しない[?]とすれば?というコントロール等が参照できないので?というダイアログが表示されるように?というオブジェクトやコントロールは何?と聞いてくるように。
>フォーム内のオブジェクトの場合はあくまでMe!で良いのでしょうか
Forms.[フォーム名]![コントロール名]やForms![フォーム名]![コントロール名]が構文。
アクティブなフォームが自分自身ならForms![フォーム名]の変わりにMeでもOKですという事。

と言う解釈の方が良いと思います。

QAccessで別テーブルの値をフォームに表示したい

初めてのAccessで分からない事があり質問させてください。

<会社テーブル>
会社ID
会社名
住所

<社員テーブル>
会社ID
社員名
ソート番号

*1社に対し複数の社員レコードが存在

以上のようなテーブルがあるとします

現在「会社テーブル」を表形式で一覧表示しています
会社ID,会社名、住所とフィールドが並んでいるのですが、その後ろに「社員テーブル」のソート番号が一番若い社員名を表示したいと考えています(現状は番号関係なく表示させる方法すら分かりません)

色々いじくりまわしたのですが、初めてAccessをさわる事もあってよくわかりません

リレーション等でひっぱってくる事ができるのでしょうか?

どなたか教えて頂けませんでしょうか

何卒よろしくお願い致します

PS.Access2013で作成中です

Aベストアンサー

単純にテーブル[会社]のみでフォームを作成し、社員表示用テキストボックスを追加。そして、そのプロパティを表示し

コントロールソース=DBLookup("SELECT 社員名 FROM 社員 WHERE 会社ID=" & [会社ID] & " ORDER BY ソート番号")

これは、以下の標準モジュールに登録したユーザ関数 DBLookup()を使っています。これで、クエリを用意しなくても目的を達成できます。

さて、かかるユーザ関数を標準ライブラリに登録したくない場合、

1、"社員ソートクエリ"を作成します。

SELECT 社員.会社ID, 社員.社員名
FROM 社員
ORDER BY 社員.ソート番号;

2、コントロールソースに次のように書きます。

=DLookUp("社員名","社員ソートクエリ","会社ID=" & [会社ID])

http://office.microsoft.com/ja-jp/access-help/HA001228825.aspx

DLookup()については、マイクロソフトの解説を参照されてください。

【DLookup()の限界を破るにはVBAで同じ関数を作るしかない】

マイクロソフトの解説を読めば判りますが、ORDER BY 節を指定する引数が用意されていません。ですから、どうしても、"社員ソートクエリ"を作成するという手間が必要となります。そこで、SQL文を引数とするDBLookup()をVBAで書けば、その手間を省けるという算段になります。この辺りは、好みと趣味の問題。どっちでも良いと思います。そういうお断りをした上で DBLookup()を紹介しておきます。なお、ADOは、つぎのように参照設定しないと利用できません。

http://www.happy2-island.com/access/gogo03/capter00307.shtml

Public Function DBLookup(ByVal strQuerySQL As String, _
             Optional ByVal ReturnValue = Null) As Variant
On Error GoTo Err_DBLookup
  Dim DataValue
  Dim rst     As ADODB.Recordset

  Set rst = New ADODB.Recordset
  With rst
    .Open strQuerySQL, _
       CurrentProject.Connection, _
       adOpenStatic, _
       adLockReadOnly
    If Not .BOF Then
      .MoveFirst
      DataValue = .Fields(0)
    End If
  End With
Exit_DBLookup:
On Error Resume Next
  rst.Close
  Set rst = Nothing
  DBLookup = IIf(Len(DataValue & ""), DataValue, ReturnValue)
  Exit Function
Err_DBLookup:
  MsgBox "SELECT 文の実行時にエラーが発生しました。(DBLookup)" & Chr$(13) & Chr$(13) & _
      "・Err.Description=" & Err.Description & Chr$(13) & _
      "・SQL Text=" & strQuerySQL, _
      vbExclamation, " 関数エラーメッセージ"
  Resume Exit_DBLookup
End Function

単純にテーブル[会社]のみでフォームを作成し、社員表示用テキストボックスを追加。そして、そのプロパティを表示し

コントロールソース=DBLookup("SELECT 社員名 FROM 社員 WHERE 会社ID=" & [会社ID] & " ORDER BY ソート番号")

これは、以下の標準モジュールに登録したユーザ関数 DBLookup()を使っています。これで、クエリを用意しなくても目的を達成できます。

さて、かかるユーザ関数を標準ライブラリに登録したくない場合、

1、"社員ソートクエリ"を作成します。

SELECT 社員.会社ID, 社員.社員名
FR...続きを読む

Qフォームを開くときに、コンボボックスの値を選択(アクセスVBA)

こんにちは。
アクセスVBAで、フォームを開いたとき
(フォームのOpenイベント)に、
コンボボックスの値を選択したいのですが、
どういう方法が、あるでしょうか。

理想は、
フォームのOpenないし、Loadイベント内で、
コンボ0.ItemData(2).Selected
と、書くような感じです。
(無論、Selectedは使えませんでした)。

よろしくお願いします。

Aベストアンサー

これでいいのかな?
※テキスト書きなので検証していません

If コンボ0.ListCount > 0 Then
  コンボ0.Value = コンボ0.Column(0, 2)
End If


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

人気Q&Aランキング