Dim txt As
String = e.Form.DropDownBox.Text
Dim tbl As
Table = Tables("窗口1_Table1")
If txt = "" Then
tbl.Filter = ""
Else
txt = "'%" & txt & "%'"
tbl.Filter = "客户ID Like " & txt & " Or 公司名称 Like " & txt &
" Or 地址 Like " & txt
& " Or 联系人 Like "
& txt
End
If
e.Form.DropDownBox.Select() '将输入焦点返回下拉列表框
这样下拉窗口显示后,会自动根据下拉列表框的内容,筛选出可能的客户,并将输入焦点返回到下拉列表框。
3、将Table控件的DoubleClick事件代码设置为:
Forms("窗口1").DropDownBox.CloseDropDown()
这样在下拉窗口双击某个客户,就会关闭下拉窗口。
4、将Table控件的KeyDown事件代码设置为:
If e.KeyCode =
Keys.Enter Then
Forms("窗口1").DropDownBox.CloseDropdown()
End
If
这样在下拉窗口中选择某个客户,按回车键,也会关闭下拉窗口。
5、将窗口的DropDownClosed事件代码设置为:
If e.Selected
Then
'如果选择了值
Dim tbl As
Table = Tables("窗口1_Table1")
If tbl.Current
IsNot
Nothing
Then
e.Form.DropDownBox.Value = tbl.Current("客户ID")
End
If
End
If
这样关闭下拉窗口后,可以自动将选定客户的客户ID输入到下拉列表框中。
如果除了客户ID列,还要同时从客户表选择其它多列内容输入到订单表,可以将DropDownClosed事件代码改为:
If
e.Selected Then
'如果选择了值
Dim tbl As
Table = Tables("窗口1_Table1")
If tbl.Current
IsNot
Nothing
Then
e.Form.DropDownBox.Value = tbl.Current("客户ID")
Tables("订单").Current("其它列1") = tbl.Current("其它列1")
Tables("订单").Current("其它列2") = tbl.Current("其它列2")
Tables("订单").Current("其它列3") = tbl.Current("其它列3")
End
If
End
If
二、设计订单表事件代码
下拉窗口设计完成,现在设计订单表的事件代码。
1、将订单表的KeyPressEdit事件代码设置为:
If e.Col.Name =
"客户ID"
Then
'如果编辑的是客户ID列
If e.Col.DroppedDown = False
'且下拉窗口没有打开
e.Col.OpenDropDown()
'打开下拉窗口
End
If
End
If
这样一旦用户在订单表的客户ID列输入内容,就会自动打开下拉窗口。
2、将订单表的ChangeEdit事件代码设置为:
If e.Col.Name =
"客户ID"
Then
'如果编辑的是客户ID列
If e.Col.DroppedDown Then
'如果下拉窗口已经打开
Dim tbl As
Table = Tables("窗口1_Table1")
If e.Text =
"" Then
'如果内容为空
tbl.Filter = "" '显示所有客户
Else
'否则根据输入内容进行模糊筛选
Dim txt As
String = "'%" & e.Text & "%'"
tbl.Filter = "客户ID Like
" & txt & " Or
公司名称 Like " & txt & " Or 地址 Like " & txt & " Or 联系人 Like " &
txt
End
If
End
If
End
If
这样就能根据用户在客户ID列输入的内容,动态筛选出可能的客户。
3、将订单表的KeyDownEdit事件代码设置为:
If e.Col.Name = "客户ID"
Then
'如果编辑的是客户 ID列
If e.Col.DroppedDown
Then '如果下拉窗口已经打开
Dim tbl
As
Table = Tables("窗口1_Table1")
If e.KeyCode = Keys.Up
Then
'如果按下的是上箭头按键
tbl.Position =
tbl.Position - 1
'向上移动一行
e.Cancel =
True
ElseIf e.KeyCode =
Keys.Down Then
'如果按下的是下箭头按键
tbl.Position = tbl.Position + 1
'向下移动一行
e.Cancel = True
End
If
End
If
End
If
这样用户在客户ID列输入内容的时候,可以按"上箭头"按键,选择上一个客户,按"下箭头"按键,选择下一个客户。