2017-07-18 9 views
0

連絡先のAccess 2010にデータベースがあります。すべての連絡先情報が表示されるフォームを作成しましたが、連絡先間を簡単にナビゲートする方法が必要です。私は検索ボックスを作っており、検索に合致する名前を持つリストを含む連続したサブフォームを更新するクエリがあります。今では、サブフォームの名前をクリックしてメインフォームのレコードに移動する方法が必要です。アクセスサブフォームからレコードに移動

スプリットフォームを使用すると、必要なものが得られますが、タブまたはナビゲーションフォームを使用すると機能しません。また、連続的なサブフォームは、私の目的のためによりよく見え、うまく機能します。

Access 2010の連絡先テンプレートは、検索ボックスと結果リストが左側にありますが、テンプレートを使用したりコピーすることができません。

答えて

0

連続したサブフォームを使用する場合は、サブフォームの詳細セクションでオンクリックイベントを使用するだけです。

1.詳細セクション内をクリックし、プロパティのサイドバーの[イベント]タブに移動します。

2.Go「オンクリック」し、自動的にあなたのプロセス

3.Paste次のコードのための基本的な環境を取得し、あなたのニーズにそれを修正するために、VBAを入力するコードジェネレータを選択します。

DoCmd.GoToRecord acDataForm, "yourmainform", acGoTo, sub_fieldname 

を使用すると、以下の設定を持っている想像: frm_contactはあなたのメインフォームです。

sub_contactlistは

contact_idリストされたすべての名前を示すサブフォームはsub_contactlistの詳細セクションの最終的な結果は次のようになります。フォームの一意の識別子(メインとサブフォームの両方)

です。

Private Sub Detail_Click() 
DoCmd.GoToRecord acDataForm, "frm_contact", acGoTo, contact_id 
End Sub 

"contact_id"は、サブフォーム内の現在の連絡先エントリを参照します。別の名前を付けることもできます。分かりやすくするために、「Me.contact_id」を使用することもできます。コードは、一意の識別子がオフセット(この場合は:contact_id)と一致するエントリにジャンプします。

詳細セクションのサブフォームではなく、メインフォーム上のボタンなどを使用しない場合は、「acDataForm」と「frm_contact」を空白のままにすることもできます。

注:可能であれば、コードを処理する際にはスペースを省略することをお勧めします。あなたの名前にスペースがある場合は、それらを大括弧で囲みます。そうしないと、エラーが発生します。一部の人々は大まかに角括弧を使用して、コード内のフィールドを何らかの形で強調表示します。私はしません。

+0

私はこれを試しましたが、動作しませんでした。私はVBAを使ったプログラミングでは新しく、まだ構文に慣れていません。これをコピーしてコードビルダーに貼り付けることはできますか?私は何を変更する必要がありますか? – ingber

+0

私は私の答えを編集しました。事がまだ不明な場合は教えてください。 –

+0

まだエラーメッセージが表示されています。デバッガは行全体を強調表示するだけであり、まったく役に立たない。コードを正確にコピーして適切な値を入力しましたが、動作させることができません。 – ingber

関連する問題