表A是maintable,有ABCDE五列,其中D列的数据来源是表B,但它的过滤条件是随C列的值变化而变化的。
If
MainTable.Name = "表A" Then
Dim dmp As New
TableDataMap
dmp.DataTable = "表B"
'指定数据来源表
dmp.ValueCol = "ID"
'指定取值列
dmp.DisplayCol = "Code"
'指定显示列
dmp.ListCols = "code,title,address,mobile,phone,email"
dmp.Sort = "code"
'指定排序方式
dmp.filter = "Class = '" & e.row("C") & "'"
Tables("表A").Cols("D").DataMap = dmp.CreateDataMap() '生成并设置DataMap
End If
现在要用一个datamap来实现动态列表,因为这个表态列表的值取决于表C列的值的变化,所以不能将这个事件放在项目事件的maintablechanging中。
如果把这个事件放在PrepareEdit事件中,就会有个麻烦,当准备编辑时,看到的是ID,而不是Code
如果把这个事件放在StartEdit事件中,就会有另一个麻烦,当焦点停留在某一行的D列时,鼠标就点不了其它地功能键。
如何解决呢?
[此贴子已经被作者于2014-10-23 22:29:12编辑过]