Access2000です。
フォームを作成し、ツールボックスより「サブフォーム/サブレポート」をクリックしてサブフォームを配置しました。
イベントがEnterとExitしかないやつです。
検索するとサブフォームのテキストボックスが・・・とかあるのですが、何の事やら?です。
この、配置したサブフォームと検索すると色々ヒットするサブフォームは別物なのでしょうか?
このシンプルなサブフォームのソースオブジェクトにテーブルを指定して表示させています。
リンク子フィールドやリンク親フィールドは未設定です。
使い方が間違っているでしょうか?
このサブフォームの使い方がイマイチよく分かりません。
検索しても前述のように存在しないイベント(?)等の説明でさっぱりです。
分かりやすくどなたかお願いします。。。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

> このシンプルなサブフォームのソースオブジェクトにテーブルを指定して表示させています。



これができているのでしたら、難しくはないと思います。
サンプルの作成法を説明しますので、いろいろ試してみて下さい。

1)新規mdbを作成して開く
 (後で下記フォームを削除するなら、ここは既存のmdbでも可)
2)新規フォームを作成し、テキストボックスやコマンドボタンなどを適当に配置
 (とりあえず、サブフォームの設定法のサンプルなのでレコードソースは空でも可)
3)上記フォームに「SF1」と名前をつけて保存
4)改めて新規フォームを作成し、サブフォーム(シンプルと言われたもの)を配置
5)サブフォーム内をクリックした後、「SF1」と入力
 (または、サブフォームのプロパティシートで、『ソースオブジェクト』に「SF1」を指定)
 ※テーブルの場合はテーブル名の前に「テーブル.」をつけて「テーブル.テーブル1」等としますが、
  フォームを指定する場合は「フォーム.」はつけずフォーム名だけを指定します)
6)上記フォームに「MF1」と名前をつけて保存


・・・以上です。

これで、MF1を開くとサブフォームコントロール内には「SF1」(に配置したテキストボックス等)が
表示されるようになります。

なお、この場合も、サブフォームの「コントロールとしてのイベント」は「Enter」と「Exit」の2つしか
ありませんが、ソースオブジェクトに指定したフォーム(上記の例では「SF1」)側で、各種イベント
(Openその他)が実行されます。


※Access2003の場合、ソースオブジェクトにフォーム名を指定した時点で、当該フォームの
 デザインビューがサブフォームコントロール内に表示され、そこでコントロールの追加やイベントの
 設定などができます。
 (サブフォームの内側をゆっくり2回クリックすると、そちらのコントロールやイベント等の編集が可能)
 Access97の場合は、指定したフォーム名が表示されるだけなので、コントロールの追加などは
 そのフォームを別途デザインビューで開く必要があります。
 Access2000は勤務先で以前使っていたのですが、Access97/2003のどちらと同じだったかは
 忘れてしまいました(汗)
    • good
    • 0
この回答へのお礼

回答ありがとうございます。サンプルそのままを作成してみました。
Webのiframeのようなものですね。
1つのフォームに複数のフォームを配置できるのですね。
検索して出てくるオブジェトの意味も分かりました。
ありがとうございました!

お礼日時:2009/05/13 11:58

> サブフォームは別物なのでしょうか?


別物ではないと思います。

そのフォームをデザインで開きプロパティを表示した時、そのサブフォームコントロールをクリックしたらプロパティには何が表示されますか。
「ソースオブジェクト」には何が書かれていますか。
ここには現在使われているように、テーブル名が入ったり、クエリ名が入ったり、はたまたフォーム名が入ったりします。
親子関係とかよくいう時には、フォームを指定していることが多いようです。

> リンク子フィールドやリンク親フィールドは未設定です
特に指定しなくても、サブフォーム側単独で動かしたりしています。

> 使い方が間違っているでしょうか?
間違ってはいないと思います。(そのような表示もするので)


以下は、私が実際に行っている処理部分の抜粋になります。

フォームの上部分に、オプショングループを配置し、やりたい処理を選んでもらいます。
その選択内容により、サブフォームに表示するフォームを切り換えています。
親子関係は設定していません。

Private Sub op1_Click()
  Select Case Me.op1
    Case 1
        Me.fsub.SourceObject = "F_A1"
    Case 2
        Me.fsub.SourceObject = "F_A2"
    Case 3
        Me.fsub.SourceObject = "F_A3"
    Case 4
        Me.fsub.SourceObject = "F_A4"
    Case 5
        Me.fsub.SourceObject = "F_A5"
    Case 6
        Me.fsub.SourceObject = "F_A6"
  End Select
End Sub

※ op1 がオプショングループ、fsub がサブフォームコントロール名

※ この方法は決まった大きさ位置での表示を、画面を切り替えるようなイメージで操作させたかったので

※ よく例とか教材に出てくるような画面構成は、親のフォームにもテキストボックスなりコントロールのものがあって、サブフォームに表示した内容のものを拾ってくるとか参照させるとかが多いです。
でも、使い方はそれだけではないので、その時々で考えられればいいと思います。
    • good
    • 0
この回答へのお礼

細かな回答をありがとうございます!
オブジェクトが絶対必要、という訳ではなく、今のやり方でも良いと知って安心しました。
オプションボタンではなくコンボボックスで似たような動作をさせてみました。なるほどー。
ありがとうございました!

お礼日時:2009/05/13 11:56

このQ&Aに関連する人気のQ&A

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

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

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

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

Q山本周五郎作『さぶ』を読んだことのある方へ

山本周五郎作『さぶ』を読んだことのある方へ質問です。
あなたはこの本を読まれてどのような感想を持ちましたか?
是非お教え下さい!

Aベストアンサー

二年前の25歳のときに読みましたが、感動しました。

冒頭のさぶを励ますシーンが映像的で印象に残りましたし、
エイジがおごった性格から試練を経て、謙虚になってゆく
過程も、感動して一気に読めました。
おのぶ(でしたっけ?)がエイジをいさめるシーンもよかったです。

ただ、エイジはもてすぎかな、と。
周五郎がエイジが主人公のこの物語に「さぶ」という題名を
つけたいきさつは、解説に書かれているとおりですが、
なんとなく不思議ですね。

私は周五郎が大好きで、強い負けない人間を描くことでとても
尊敬していますが、市井の人間を描くあまり、
話がちっこくなってるな、とも思います。

この物語では、一番おのぶがかっこよく、私もエイジよりさぶがすき
です。さぶのような不器用で、それでもやさしい人間を
周五郎は英雄のエイジをささえる人間として愛したのでしょうね。

QAccess フォームのテキストボックスに入力した年月でテーブルのフィールド名を検索し、レコードを表

Access フォームのテキストボックスに入力した年月でテーブルのフィールド名を検索し、レコードを表示させることはできるのでしょうか?
方法があればご教授ください。
よろしくお願いします(❁ᴗ͈ˬᴗ͈)

Aベストアンサー

>Dim myDB As Databaseでコンパイルエラーで『ユーザ定義型は定義されていません。』のエラーが出るのですがどうしたら良いでしょうか…?

Dim myDB As Database → Dim myDB As DAO.Database
Dim myTB As TableDef → Dim myTB As DAO.TableDef
このように DAO. を付けてみたらどうですか?

それでもエラーが出るようでしたら、Accessのバージョンと、VBAエディタ のツールにある「参照設定」で
チェックの入っている項目を教えてください。

Access2000か2002でしたら、参照設定で Microsoft DAO 3.6 Object Library にチェックが入っていないのかも。。。。

Qさぶアド

どうしたら
さぶアドが
取得できますか?
教えてください!

Aベストアンサー

ドコモとGoogleがモバイルインターネットサービスに関する業務提携に合意
http://www.nttdocomo.co.jp/info/news_release/page/080124_00.html

Gmail
https://www.google.com/accounts/ServiceLogin?service=mail&passive=true&rm=false&continue=https%3A%2F%2Fmail.google.com%2Fmail%2F%3Fnsr%3D1%26ui%3Dhtml%26zy%3Dl&ltmpl=default&ltmplcache=2&hl=ja

Qaccess 2000フォーム検索 サブフォームじゃだめ?

access 2000でフォームにリレーションされたサブフォームを設置したのですが、使う段になってから気づいたのですが、サブフォームの検索できないんですね。
できないというか、リレーションされた結果が表示されるので、その中での検索となってしまう。

フォーム内容が1体多となっている。

テーブルA
id name
1 aoki
2 sasaki

テーブルAのidとテーブルBのuidはリレーションされている。

テーブルB
uid book
1 辞典
2 漫画
1 ノート

テーブルAのid1 aokiを表示しているフォームで、テーブルBの「漫画」で検索した際に検索できるようにするにはどうすればいいでしょうか。

Aベストアンサー

>サブフォームの検索できないんですね。
>リレーションされた結果が表示されるので、その中での検索となってしまう。
検索できないのではなくリレーションそのままでフォーム・サブフォームを作ったのでそのようにしか出来ない状態なんです。
サブフォームのプロパティでリンク子フィールドとリンク親フィールドの設定が現在はuidとidになっているのでこれを外せば出来るようになります。
フォームの抽出条件のテキストボックスなどのコントロールを使ってサブフォームに抽出したレコードをセットしサブフォームをRequeryすれば出来ます。
またはサブフォームのFilterに条件を代入してサブフォームをRequeryすれば出来ます。

Q古典ででてくる「さぶらふ」って、読みは「さぶろう」ですか?「そぶろう」ですか?それともちがいますか?

古典ででてくる「さぶらふ」って、読みは「さぶろう」ですか?「そぶろう」ですか?それともちがいますか?

Aベストアンサー

読みは「さぶらう」です。

さぶらう【候ふ・侍ふ】
https://kotobank.jp/word/%E5%80%99%E3%81%B5%E3%83%BB%E4%BE%8D%E3%81%B5-275910

QアクセスのサブフォームからメインフォームヘEnterキーで移動したい!!

アクセス2000でメインフォームにサブフォーム(クエリ)を埋め込みました。

メインフォームからEnterキーを押すと、
サブフォームにクエリーの結果が表示されます。

ところが、その後、いくらEnterキーを押してもカーソルがメインフォームへ戻りません・・・
「マウスでクリックせずに、Enterキーでメインフォームへ戻りたい!!」

埋め込んだサブフォームのプロパティ・タブストップを「いいえ」にすると、
クエリーの結果は出てこない、どうしたらいいのでしょう。。。教えて下さい!!!!

Aベストアンサー

あ、どうも言葉が少なかったようですm(_ _)m。

#1でマクロを指定するのは、サブフォームの「フォーカス喪失後」じゃなくて、サブフォーム上にあるコントロールの「フォーカス喪失後」です。

サブフォーム上に幾つかのテキストボックスを配置しますよね。
で、それらに適当にタブオーダーを設定して、一番最後にフォーカスが移るコントロールの「フォーカス喪失後」に前述のマクロを設定してやればいい、と思います。

Q「さぶいぼたてんだ♪おお~おお~おお~♪

ミスチルの「光のさす方へ」(確か)で、「さぶいぼたてんだ~♪」と唄ってるところありますよね?
これってどういう意味なんでしょう?ず~っと何気なく聞いて唄っていたんだけど、今になって急に気になりだしました。。。。。

Aベストアンサー

「海に漂ってたら、寒くなっちゃって鳥肌立ててしまってるんだ」
ってことでしょうねぇ。
これに対になってるのが「骨折ってリハビリ」ですから、「失敗してる」って
表現なんでしょうねぇ

#しかし、"さぶいぼ"って…^^;

QACCESS サブフォームのフィールドにカーソルをあてる

ACCESS2003で、VBAで簡単なプログラムを作っています。

<やっていること>
・フォームAからフォームBを開きます。
・そのときにフォームAの番号と一致するデータをフォームBに表示します。
・フォームBにはサブフォームCが埋め込んでいます。

このサブフォームCの中のフィールドDにカーソルが入っているようにしたいのですが、
Forms!サブフォームC!フィールドD.setfocus

としたら、「カレントレコードには、フィールドDという名前のフィールドはありません」というエラーがでます。

フィールドDというフィールドは存在しています。

このような場合、どのように記述するのがよろしいのでしょうか。

よろしくお願いします。

Aベストアンサー

次の方法でできるように思いますが。。。。。
VBAではなくてプロパティ利用の方法ですが・・・


・フォームBでのサブフォームCを埋める場所(項目)の
 プロパティで、「タブ移動順」を 0 にする
・フォームC(項目)の フィールドDの
 プロパティで、「タブ移動順」を 0 にする

--------------------------------------------------
参考までですが
サブフォーム内の項目指定は

[FORMS]![親フォーム名]![サブフォーム名].[FORM]![フィールド名]
 この後に必要なVBA命令を書く

ここでのサブフォーム名とは親フォーム内で定義した項目名を使う
で指名できると思います

Qあっと驚くさぶいぼ話

すごく昔の事なんですが(おそらく15年~20年くらいは経ってると思います)、友達か姉から借りて聞いたラジオを録音したテープがありました。
そのラジオ名は分かりませんが、男の人のちょっと低めの声で、
「♪あっと驚くーさぶいぼ話ーーー!!」という感じで始まりました。
その内容がすごく面白くてとても印象に残っています。
もう一度聞きたいのですが、もうテープがなくなってしまって手に入れられません。
気になって気になって・・・
どなたか、持っている方(居ないと思いますが)、若しくは内容を知っている方は情報を教えてください。お願いします。

Aベストアンサー

私も古い記憶の彼方なので、今ひとつ自信がないのですが、
笑福亭鶴光の「オールナイトニッポン」ではないでしょうか。
http://ja.wikipedia.org/wiki/%E7%AC%91%E7%A6%8F%E4%BA%AD%E9%B6%B4%E5%85%89%E3%81%AE%E3%82%AA%E3%83%BC%E3%83%AB%E3%83%8A%E3%82%A4%E3%83%88%E3%83%8B%E3%83%83%E3%83%9D%E3%83%B3

さすがに、プロパーな方法で当時の音源をそのまま入手することは困難でしょう。
ただし、「鶴光のオールナイトニッポン事件簿」という、
鶴光師匠が当時の思い出を語るpodcast番組が配信されているので、
それで当時の雰囲気は味わえるでしょう。
http://portal.podcastjuice.jp/dirretrieval/feed_detail.cgi?categoryid=1007&blog_id=12840&slisttart=0

Qサブフォームのフィールドの幅を変更したい。

アクセス2003です。

画像の様に、コマンドボタンを押したら
サブフォームの列(フィールド)の幅を変更することは可能ですか?

エクセルvbaで例えたら
Columns("A:A").ColumnWidth = 30
から
Columns("A:A").ColumnWidth = 10
へしたいです。

ご教授よろしくお願い致します。

Aベストアンサー

Me.サブフォームコントロール名![出金].ColumnWidth = 1000
とか。

Access2003 ということなら
Me.サブフォームコントロール名![出金].ColumnWidth = -2
もありかも。

詳細は VBE のヘルプで「ColumnWidth」プロパティを調べてください。


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

人気Q&Aランキング

おすすめ情報