0

そのため、最近、UIをより使いやすくするために、より多くのサブフォームを組み込むことを試みています。したがって、VBを実行する事前に開発されたフォームがあるので、たとえば、SQLステートメントを実行し、レコードセットを返し、テキストボックスにデータを入力するとします(これは一種のインタラクティブなダッシュボードの概念であるため:

dim db as database
dim rs as recordset
dim sql as string
set db = current db

sql = "SELECT * FROM tblMain;"

   set rs = db.OpenRecordSet(sql)

         rs.movefirst
             [forms]![DashboardSubName].txtValue1 = rs!Value1
         rs.close

 set rs = nothing
 set db = nothing

エラー「DashboardSubName」が見つからないことを返すエラー処理を使用します。したがって、元々このフォームは独自のフォームであり、それ自体を開くと正常に機能しますが、親フォーム内で使用すると、このエラーが発生します。

それは単に私が気付いていないものだと確信していますが、何が得られますか?

みんなジャスティンありがとう

4

3 に答える 3

3

フォームがサブフォームとして読み込まれると、メインフォームの別のコントロールであるかのように参照され、グローバルフォームコレクションの一部ではなくなります。

したがって、正しい参照は次のようになります。Me!DashboardSubName.Form.txtValue1

ここで、DashboardSubNameは、サブフォームコントロールの名前です。

于 2010-07-21T00:21:06.843 に答える
1

あなたが私たちに示したコードが親フォームではなくサブフォームの一部であると仮定して、置き換えます

[forms]![DashboardSubName].txtValue1 = rs!Value1

Me.txtValue1 = rs!Value1
于 2010-07-21T13:03:37.290 に答える
1

ここでの構文の理由は、サブフォームコントロールがその中に埋め込まれたサブフォームとは異なるためです。サブフォームコントロールには独自のプロパティがあり(サブフォーム自体と比較して制限されています)、それに埋め込まれているサブフォームのプロパティ/メソッドにアクセスするには、サブフォームが埋め込まれているフォームが必要であることを指定する必要があります。

  Me!MySubformControl

...サブフォームコントロールです。

  Me!MySubformControl.Form

...サブフォームコントロールに埋め込まれているフォームです。

最後に、サブフォームのデータを更新するためにレコードセットを歩いているのはなぜだろうと思います。これは通常の方法ではありませんが、実際の質問に接しています。

于 2010-07-21T18:10:37.267 に答える