プロが教える店舗&オフィスのセキュリティ対策術

ACCESS フォームの詳細セクションのコントロールを全て非連結で作ろうとしています。
レコードセットに連結していれば、詳細セクションにはレコード件数分の行が自動的に生成され、データのセットも勝手に行われますが、非連結なので、自分で(VBAで)制御する方法を知りたいです。
行にはテキストボックスだけでなくコマンドボタンやチェックボックスも配置します。
・VBAで行を作ってそこのテキストボックスに任意の値をセットする方法
・VBAで行にあるオブジェクトの値等を参照する方法
以上を教えていただけませんでしょうか?
(そのようなサイトがあれば、それも教えていただきたいです)

A 回答 (2件)

質問の件に関しては多分回答はでないだろう


と思っていましたが。過去質問を検索すれば
いくつか出てきます。他のサイトにも
類似の質問を見受けることはあります。

この件に関し、CreateControlという
関数があります。ただし、質問の
ような個数が多く不確定のような
場合、

(1)
コーディングの量がハンパではない。
コントロール一つ一つについて、
表示(位置、大きさ)、表示する値のセット、
その他もろもろ。
(2)
大量のメモリを消費する。
(3)
ファイルそのものが壊れる可能性もある。


以上で、特に紹介するサイトはありませんが、
マイクロソフトのサポートページには
CreateControlに関する記事があるかも
しれません。
http://support.microsoft.com/kb/93095/ja
http://support.microsoft.com/kb/121667/ja

何故、非連結コントロールでなければ
ならないのかを明記すれば、あるいは
代替案が示される可能性はあります。
誰もがとは言いませんが一度は思いつく
可能性のある質問だとは思います。
    • good
    • 0
この回答へのお礼

返答が遅くなりすみません。
私はVBでの開発が多かったため、サードパーティ製のスプレッドシートをよく使っていました。
今回ACCESSで開発することになり、似た感覚で作りこみできればと思っていました。
しかしACCESSでは無理ということなのですね・・・。
「連結」では不都合な事が多いため、あきらめます。(他の方法を考えます)
レスありがとうございました。

お礼日時:2010/05/13 21:08

以下のようなコードでコントロールの指定および埋め込み・取り出しができます。


ポイントは埋め込みないし取り出したいコントロールにSetFocusしておくことです。

Private Sub CommandButton1_Click()
Dim S As String
S = InputBox("文字は")
Form_フォーム1.テキスト0.SetFocus
Form_フォーム1.テキスト0.Text = S
MsgBox Form_フォーム1.テキスト0.Text
End Sub

この回答への補足

私の説明が下手ですみません。
詳細セクションは、明細行イメージになります。(行が複数発生する)
1行に、テキストボックス2つ、コマンドボタン1つ、チェックボックス1つ
とすると、それがn行発生します。
レコードソースに連結していれば、レコードが10件あれば10行勝手に表示されます。
しかし私がしたいのは全て非連結オブジェクトなのです(テーブルやクエリを使うのではなく、
VBAのコーディングでデータを表示)

すみません、伝わるでしょうか・・・。

補足日時:2010/04/29 22:37
    • good
    • 0

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