Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1753 / 9994 ←次へ | 前へ→

【11531】Re:データシート形式でのフォームについて
回答  YU-TANG  - 10/3/15(月) 1:21 -

引用なし
パスワード
   こんばんは、YU-TANG です。

▼pon さん:
> Me.Controls("埋め込み0").SourceObject = "Table.テーブル名"
> としたら
> 実行時エラー '2124':
> 指定したフォーム名は Microsoft Access オブジェクトの名前付け規則に従っていません。
> と怒られてしまいました

いえ、"Table.テーブル名" ではなく、"テーブル.テーブル名" です。
というか、ふつうにサブフォーム コントロールのプロパティシート上で
[ソースオブジェクト] プロパティのコンボボックスをドロップダウン
すると、リストの下の方に出てきませんか?
Access 2003 では出てくるのですが。
古いバージョンだとサポートされていないのかもしれませんが、どの辺の
バージョンからサポートされたのか、ちょっと自分は記憶にないです。

別に変な使い方ではなく、ふつうの使い方だと思いますよ。
下記でも説明されてますし。

ht tp://www.moug.net/tech/acvba/0100006.htm
ht tp://www.accessclub.jp/samplefile/samplefile_117.htm

> 埋め込みコントロールのイベントは
> フォーカス取得時
> フォーカス喪失時
> しかありませんでした

サブフォーム コントロール自体はそうですが。
サブフォーム コントロールのソース オブジェクト側はふつうのフォーム
ですから、そっちには一通りイベントがありますよ。

> 動作的には、抽出後、データシートのレコードを選択し
> 左の三角ボタンで処理したいのですが・・・

たとえば、

Private Sub 運送会社を表示_Click()
  埋め込み0.SourceObject = "テーブル.運送会社"
  埋め込み0.Form.OnClick = "=Foo()"
End Sub

のようにすると、サブフォームのクリック時に、標準モジュールの
Public な Function プロシージャ Foo() が呼び出されます。
このようにすれば、既存のプロシージャを外出しにすることは可能です。

> > RecordSourceの書き換え
> > コードでフォームの作成
> >が出来れば良さげな気がしてきました
> のアプローチは変ですか

いえ、別に変ではないですよ。
テーブルによって列構成が違うでしょうから、コントロールをバインド
し直したりするのが面倒くさくないかなーと思っただけなのですが、
既存のプロシージャを外出しにするのも手間は手間ですから、一概に
どっちがいいとも言い切れないですね。
ご自身のやりやすい方でよいのではないでしょうか。

どのみち、自分がレスした時点ではイベント云々の話は出ていませんから、
単純にデータシートの入れ替えを意図しただけです。他に事情があるなら、
その辺を勘案して総合判断なさるのがよろしいかと思います。

それでは。

1,327 hits

【11522】データシート形式でのフォームについて pon 10/3/11(木) 16:01 質問[未読]
【11526】Re:データシート形式でのフォームについて pon 10/3/13(土) 1:16 発言[未読]
【11527】Re:データシート形式でのフォームについて YU-TANG 10/3/13(土) 1:30 回答[未読]
【11530】Re:データシート形式でのフォームについて pon 10/3/14(日) 23:27 質問[未読]
【11531】Re:データシート形式でのフォームについて YU-TANG 10/3/15(月) 1:21 回答[未読]
【11547】Re:データシート形式でのフォームについて pon 10/3/26(金) 14:53 お礼[未読]

1753 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078193
(SS)C-BOARD v3.8 is Free