0

これを行う方法についての手がかりがありません。私は Access 2007 を使用しており、VBA と SQL でコーディングしています。

テーブル A には、データ、アカウント、および金額があります。ユーザーはフォーム B を使用して、A のデータのサブセット (たとえば、金額が 50 ドルから 100 ドルの間のすべての行) にアクセスできます。

ユーザーが行を見ているとき、ビューから除外されている同じアカウントを持つ他の行があるかどうかを知る必要があります。つまり、親には表示され、子には表示されない行があるかどうかを知る必要があります。

解決策は、ビューでアクティブになっているフィルターを特定し、dcount を使用して比較することだと思います。ただし、ビューでアクティブになっているフィルターを取得する方法がわかりません。もっと簡単な方法があるかもしれません。

4

1 に答える 1

1

TableA に主キー ID があるとします。FormB の現在のイベントを使用する:

 Dim rs AS DAO.Recordset

 dAmt = Me.Amount
 sAcc = Me.Account 

 ''Get a list of visible IDs
 With Me.RecordsetClone
    .MoveFirst

     Do While Not .EOF
         If !Amount=dAmt And !Account=sAcc Then
            sIDs = sIDs & "," & .ID
         End If
         .MoveNext
     Loop
 End with

 ''Other IDs
 sSQL = "SELECT * FROM TableA "
      & "WHERE Amount = " & dAmt _
      & "Account = '" & sAcc _
      & "' ID Not In (" & Mid(sIDs,2) & ")"

 CurrentDB.CreateQueryDef("NewQ",sSQL")
 Docmd.OpenQuery NewQ

上記はテストされておらず、現状では、既存のクエリが編集されているのではなく、新しいクエリが作成されているため、実行されたとしても 1 回しか実行されません。

于 2012-08-09T10:18:50.780 に答える