老师,我在当“白塔销售档案”表是内部表时,在窗口的DropDownOpened事件中用如下代码,可以实现读取功能,但现在“白塔销售档案”表为存在SQL数据库中,且不带数据加载为内部表,那么要如何修改代码,才能实现相同功能?Dim items As String = ""
For Each dr As DataRow In DataTables("白塔销售档案").datarows
items += dr("销售档案_客户名称") & "|"
Next
Dim lsx As WinForm.ListBox = e.form.Controls("ListBox1")
lsx.ComboList = items.Trim("|")
e.Form.DropDownBox.Select() '将输入焦点返回下拉列表框
Dim lsx As WinForm.ListBox = e.form.Controls("ListBox1")
lsx.ComboList = DataTables("白塔销售档案").SQLGetComboListString("销售档案_客户名称")
老师,感谢您,这个问题解决了,但是还是在相同的情况下,在下拉组合框时输入相关的信息后,在下拉的菜单中应该是显示与我输入信息like的,但是现在组合框不like了,请您帮看下,这代码哪里有问题Dim drp As WinForm.DropDownBox = e.sender
If drp.DroppedDown Then '如果下拉窗口已经打开
Dim items As String = ""
For Each dr As DataRow In DataTables("白塔销售档案").Select("销售档案_客户名称 like '*" & e.sender.Text & "*'")
items += dr("销售档案_客户名称") & "|"
Next
Dim lsx As WinForm.ListBox = Forms(e.sender.DropFormName).Controls("ListBox1")
lsx.ComboList = DataTables("白塔销售档案").SQLGetComboListString("销售档案_客户名称")
End If
2句代码就行了
Dim drp As WinForm.DropDownBox = e.sender
If drp.DroppedDown Then '如果下拉窗口已经打开
Dim lsx As WinForm.ListBox = Forms(e.sender.DropFormName).Controls("ListBox1")
lsx.ComboList = DataTables("白塔销售档案").SQLGetComboListString("销售档案_客户名称","销售档案_客户名称 like '*" & e.sender.Text & "*'")
End If
老师,这代码是写在下拉组合框的textchanged的事件里,改用您的代码后,下拉组合框直接就没有菜单了
只保留下面2句
Dim lsx As WinForm.ListBox = Forms(e.sender.DropFormName).Controls("ListBox1")
lsx.ComboList = DataTables("白塔销售档案").SQLGetComboListString("销售档案_客户名称","销售档案_客户名称 like '*" & e.Form.DropDownBox.value & "*'")
[此贴子已经被作者于2024/3/16 16:14:42编辑过]
老师,这两句的第一句还是有sender ,提示的错误还是这个
不对呀,如果是要在控件一边输入,一般做筛选,类似这里的用法:
http://www.foxtable.com/webhelp/topics/2466.htm。我测试在
textchanged的事件使用4楼的代码没有任何问题