2012-04-09 13 views
0

私は実際に答えを知っているが、インターネット上で答えを見つけられなかったので自分自身でそれを一緒につなぎましたので、それに苦しんでいるかもしれない誰かのためにそこに置くことを望んでいたという質問がありました。誰か他人を救うために。 Access 2003では、ユーザーが異なるレコードをクリックするたびに同じレコードを取得する場合は、デザインモードで保存したときにフィルタされたレコードにサーバーフィルタプロパティも保存された可能性があります。あなたがそれを生きて送るとき、それはそのように詰まっています。私はこの問題に対する答えを以下に提供します。レコードの重複:Access 2003、VBA。サーバーのフィルターがついた

答えて

1

これはすべての「イベント」で機能するわけではありません。そのため、最善のことは、このコードをServerFilterプロパティを取得しているフォームを開いたり、毎回同じレコードを複製したりするために使用するボタンです。再度、このコードを問題のあるフォームを開くボタンに挿入して、「OpenForm」関数が必要なフォームを呼び出す前に実行します。 '提供されたフォームを閉じます。 DoCmd.Close acFormを開いた場合に備えて、 "Orders" '提供されたフォームをデザインビューで再オープンします。 DoCmd.OpenForm "オーダー"、acDesign

Public Sub Whatever() 
On Error GoTo LiveError 

    'Set all filters to "" 
    Forms![Orders].Filter = "" 
    Forms![Orders].ServerFilter = "" 

    'Save the form in design view 
    DoCmd.Save acForm, "Orders" 

    'Close the supplied Form. 
    DoCmd.Close acForm, "Orders" 

    'This is where your Open Form function would go, to open whatever form you need 
    'as usual. The only difference now is that all pre-saved filters will be gone 
    'before you apply the new filter. 

    Exit Sub 

LiveError: 
    'This is so that when it goes live it doesn't error out since it can't open 
    'in design mode on the live server. 

    'Continue opening whatever form you planned on before. For example: 

    Call OpenOrderForm(Forms![FORMNAME]![FILTERCRITERIA]) 
End Sub 
関連する問題