1

FLRecComboという名前のコンボボックスを持つメインフォームがあります。これは元々、コンボボックスでオプションを選択すると、メインフォームのレコードソースのそのレコードに移動するように設定されていました。

次に、メインフォームにサブフォームもありました。これは、最初に設定すると、メインフォームが現在共通フィールドを使用しているレコードソースに基づいて、レコードソースのレコードに移動します(つまり、コンボボックスを使用して移動できます)。すべてのサブフォームの特定のレコード)。

これが過去形であることに注意してください...

VBAのFLRecComboAfterUpdateイベントにコードを追加したかったのです。残念ながら、これにより、コンボボックス、メインフォーム、およびサブフォーム間の関係が切断されたようです。FLRecCombo AfterUpdateイベントで作成されたマクロがあった可能性があります。これは、コードビルダーを使用して大胆に上書きしました。

最初に行った動作をどのように復元できますか?私はこのウェブサイトで提案された方法を試しました。オブジェクト参照は次のとおりです。

  • サブフォーム名:Finance_FunderAllocationサブフォーム
  • サブフォームレコードソース:Finance_HeadRec_FunderAllocation
  • 一致するサブフォームレコードソースフィールド名:資金調達ライン
  • 一致するフォームレコードのソースフィールド名:FundingLine

これが私が試したコードです:

Private Sub FLRecCombo_AfterUpdate() 

    With Me.[Finance_FunderAllocation subform].Form.Recordset
        .FindFirst "Funding Line=" & Me.FLRecCombo
    End With 

End Sub

ただし、アクセスデバッガーはこれを好みません。

実行時エラー「3077」:

式の構文エラー(演算子がありません)。

次に、 .FindFirstで始まるコード行を強調表示します。

どんな助けでも大歓迎です!

4

1 に答える 1

1

それは読むべきです:

 .FindFirst "[Funding Line]=" & Me.FLRecCombo

または、資金調達ラインがテキストの場合:

 .FindFirst "[Funding Line]='" & Me.FLRecCombo & "'"

フィールド名にスペースがあるため、角かっこが必要です。自分のために、テーブル名とフィールド名のすべてのスペースを削除することを検討してください。

最後に、サブフォームの子フィールドとマスターフィールドをリンクして、コードなしでサブフォームのコンテンツをフィルタリングするなど、非常に多くのことを実行できます。

 Link Master Fields: MyCombo
 Link Child Fields : [Funding Line]
于 2013-03-12T17:31:12.703 に答える