2011-01-23 14 views
0

私は現在、連絡先にMS Access 2010テンプレートを使用しています。私はそれを複数の基準の検索を行うように修正しましたが、それはまだ同じです。 私が知りたいのは、「開く」をクリックすると開く連絡先の詳細ウィンドウを変更する方法です。連絡先詳細ウィンドウは、msアクセスですか?

基本的には、ウィンドウを開きたいのですが、ウィンドウを閉じて別のボタンを再度開くことなく次の人に移動するために2つのボタンを追加したいと思います。私はボタンを追加しましたが、開いたウィンドウは特定のID用ですので、次のレコードには移動しません。

特定の連絡先の連絡先の詳細ウィンドウを開く方法を知っていますが、まだすべての連絡先を調べることはできますか? (それらは、検索後に指定した連絡先である)

編集:私はちょうどクローンを作成しようとしましたが、私が得るすべてのエラー「3251で、

OK - この操作は、このタイプのためにサポートされていません。私はVBAコードには比較的新しいので、問題を見つけるのは難しいですが、私はそれがレコードセットのタイプ(DAOまたはADO)と関係があると推測しています。

Private Sub txtOpen_Click() 

DoCmd.OpenForm "Contact Details", , , , , acHidden 
    With Forms![Contact Details] 
    .Recordset = Me.Recordset.Clone 
    .RecordsetClone.FindFirst "[ID]=" & Me!ID 
    If Not .NoMatch Then 
     .Bookmark = .RecordsetClone.Bookmark 
    End If 
    End With 

End Sub 

私は現在、しかし、それに探しています!

+0

ここに回答がない場合は、質問をwww.UtterAccess.comまたはwww.access-programmers.co.ukに投稿することをお勧めします。 – HK1

+0

使用しているContactテンプレートを指定すると役立ちます。利用可能なものがいくつかあります。 –

+0

申し訳ありませんが、私はvodloza製のものを使用しています。私は自分のニーズに合わせて検索をカスタマイズしました。 – blackjak231

答えて

0

を私はA2010のコンタをチェックしていません私の推測では、結果のリストがあり、1つを選択してコマンドボタンをクリックして詳細を開くことです。

DoCmd.OpenForm "frmContactDetails", , , "[ContactID]=" & Me!ContactID 

...フォームを開き、単一のレコードにそれをフィルタリングします。コマンドボタンは、このようなコードの何かを持っていることを

可能性が高いです。

ナビゲーション可能なレコードセットを使用するには、検索結果のリストに表示されているものと同じレコードセットにフォームをフィルタリングし、それらの間を移動する必要があります。これを行うには、結果リストをフィルタリングしたのと同じ基準に条件を設定してから、現在選択されているレコードに移動する必要があります。私は基準があるかわからないので、私はただの変数でそれを表現するつもりだ、strCriteriaしかし、要件は、それが言葉のない句「WHERE」SQLのようにフォーマットされることである。

DoCmd.OpenForm "frmContactDetails", , , strCriteria 
    With Forms!frmContactDetails 
    .RecordsetClone.FindFirst "[ContactID]=" & Me!ContactID 
    If Not .NoMatch Then 
     .Bookmark = .RecordsetClone.Bookmark 
    End If 
    End WIth 

これは、同じレコードセットにフォームを開き、コマンドボタンをクリックして詳細を表示したときに結果で選択されたレコードのContactIDを持つフォームに移動します。その詳細フォームにそのレコードセットがロードされると、好きなように次または前のレコードに移動できます。

詳細フォームを開き、フォームのレコードセットを結果フォームのレコードセットの複製に割り当てることもできますが、これを試みたことはありません。もう1つ考えるべきことは全くポップアップ形状を有するが、分割されたフォームを使用し、何かされていない

DoCmd.OpenForm "frmContactDetails", , , , , acHidden 
    With Forms!frmContactDetails 
    .Recordset = Me.Recordset.Clone 
    .RecordsetClone.FindFirst "[ContactID]=" & Me!ContactID 
    If Not .NoMatch Then 
     .Bookmark = .RecordsetClone.Bookmark 
    End If 
    End WIth 

:その場合は、それが(未テストコード、ちょうどこれはどのように行われるかを推測)のようなものになるだろうこれはA2007で導入されたものであり、まだ使用する機会はありませんでした(A2007/2010に完全に移行したクライアントはいません)。これは、同じフォーム上のリストビューと詳細ビューを持っています。

同じことを実装する従来の方法では、アンバウンドフォームに2つのサブフォームがあり、トップフォームは結果リストで、トップフォームは現在のレコードに関連付けられている詳細フォームです。トップフォーム。いいえコードは必要ありません、あなたはこのように詳細フォームのLinkChildとLinkMasterのプロパティを設定します。

LinkMaster: ListForm.Form!ContactID 
    LinkChild: ContactID 

このアプローチと分割フォームの両方が、私は、ユーザー敵対多少考慮ポップアップフォームを、避ける(それはする必要があります控えめに使用してください)。

どのアプローチを使用するかは、アプリケーションの適合方法によって異なります。

+0

そして、私はポップアップウィンドウを保持したい。私は以前に分割されたフォームを持っていましたが、検索時に連絡先のリストが必要なので、リストから詳細にアクセスできるようになると、かなりのスペース(タブでも表示する情報がたくさんあります) (グラフィックで)整理するのはかなり面倒だった。だから、私は、グラフィックの理由でポップアップウィンドウに固執するつもりです。 私はすぐに正しいコンピュータに乗り、同時にコードを試してみてください。どうもありがとう! – blackjak231

関連する問題