Mat*_*han 3 ms-access vba access-vba
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
Run Code Online (Sandbox Code Playgroud)
这是我使用明显限制的代码是Dlookup只返回它找到的第一个结果.这会造成2个问题,但是我会关注第一个问题,它不会显示多个MID
那么如何才能显示1-3个MID?
我有的第二个问题是更深入,但如果有人想帮助,个人聊天将不胜感激.基本上上面的表单是一个子表单,我需要它在表单表中为每个Mount ID保存一个单独的条目.
如果有人想提供帮助但不理解(我的提交通常就是这种情况),我认为Skype上的屏幕共享是最好的选择.
正如在评论中已经说过的那样,您不能使用DLookup返回多个值.
你需要选择前三个MIDs 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
Run Code Online (Sandbox Code Playgroud)
请注意,此示例使用DAO,这是较新Access版本中的默认(并由MS推荐)数据访问技术.旧版本使用ADO作为默认值.
DAO也在那里工作,你只需要参考Microsoft DAO x.x Object Library.
| 归档时间: |
|
| 查看次数: |
17755 次 |
| 最近记录: |