4

DealID は Combobox を使用して設定され、その下のフィールドに最大 3 つの MID を表示する必要があります

Private Sub DealID_AfterUpdate()
Dim strFilter As String
strFilter = "DealID = " & Me!DealID
Me!MID = DLookup("MID", "DealContent", strFilter)
Exit_ProductID_AfterUpdate:
Exit Sub
End Sub

これが私が使用しているコードです。明らかな制限は、Dlookup が最初に見つけた結果のみを返すことです。これにより 2 つの問題が発生しますが、最初の問題に焦点を当てます。複数の MID は表示されません

では、1 ~ 3 個の MID を表示するにはどうすればよいですか?

私が持っている 2 番目の問題はより詳細ですが、誰かが助けたい場合は、個人的なチャットをいただければ幸いです。基本的に上記のフォームは子フォームであり、マウント ID ごとにフォーム テーブルに個別のエントリを保存する必要があります。

誰かが助けたいが理解できない場合 (私の提出物でよくあることですが)、Skype での画面共有が最適なオプションだと思います。

4

1 に答える 1

6

DLookupコメントで既に述べたように、複数の値を返す ために使用することはできません。

最初の 3 つMIDの s をに選択し、Recordsetそれらをループして に追加する必要がありますMe!MID

Dim RS As DAO.Recordset
Dim SQL As String

'ordering is only important if you want the FIRST three MIDs.
'If you don't care, just omit the "order by MID" part.
SQL = "select top 3 MID from DealContent where DealID = xxx order by MID"

Set RS = CurrentDb.OpenRecordset(SQL)
Do While Not RS.EOF
    Me!MID = Me!MID & RS("mid") & " "
    RS.MoveNext
Loop
RS.Close
Set RS = Nothing

この例では、新しい Access バージョンの既定の (MS によって推奨されている) データ アクセス テクノロジである DAO を使用していることに注意してください。古いバージョンではデフォルトで ADO が使用されていました。
DAO はそこでも機能します。必要なのは への参照だけですMicrosoft DAO x.x Object Library

于 2012-06-25T21:19:47.203 に答える