如题.谢谢.
我想做一个类似 excel 中单元格,输入一个学校名称 比如 河南, 让combobox 自动提示 河南开头的学校名称.如果没有就按我输入的显示并存到表中.下次再输入时,就提示有,并自动键入.
我在看 combobox 中 rowsourcetype 有新的 structure popup collection 这是什么意思呢>
------解决方案--------------------------------------------------------
- SQL code
Text+List查询--设表单上的这个文本框和列表框分别为:Text1和List11、--表单Init事件代码:This.KeyPreview=.T.This.List1.Visible=.F.2、--表单KeyPress事件代码:Lparameters nKeyCode, nShiftAltCtrlIf (nKeyCode=5 Or nKeyCode=24 Or nKeyCode=13) And This.List1.Visible And This.List1.ListItemId>0 And This.Text1.Tag='1' If nKeyCode=13 This.Text1.Value=This.List1.Value This.List1.Visible=.F. Else lnListID=Iif(nKeyCode=5,Max(This.list1.ListItemId-1,1),Min(This.list1.ListItemId+1,This.list1.ListCount)) This.list1.ListItemId=lnListID Nodefault EndifEndif3、--Text1的GotFocus事件代码:This.Tag='1'--Text1的LostFocus事件代码:*Thisform.List1.Visible=.F.This.Tag=''--Text1的InteractiveChange事件代码:If !Empty(This.Value) Thisform.list1.RowSource=Null Select 名称 From 商品名 Where Alltrim(This.Value)$拼音简码 Into Cursor t1 Order By 名称 Thisform.list1.RowSourceType=6 Thisform.list1.RowSource="t1.名称" If Reccount('t1')>0 Thisform.List1.ListItemId=1 Thisform.List1.Visible=.T. Else Thisform.List1.Visible=.F. EndifElse Thisform.List1.Visible=.F.Endif--List1 的Click事件代码:Thisform.Text1.Value=This.List1.ValueThis.Visible=.F.*-----------------------------------------------ComboBox组合框查询If !Empty(This.DisplayValue) Select 姓名 Into Cursor T1 From kq_yg Where Alltrim(This.DisplayValue)$姓名 If _Tally>0 This.RowSourceType= 6 This.RowSource='T1.姓名' This.SetFocus Keyboard '{F4}' Else Messagebox("没有你要查询的数据",48,"信息提示") This.Clear EndifEndif1 把以上代码添加组合框的: InteractiveChange 事件中! 2 你的数据源必须来自于一个数据表!,并将表名和字段名替换正确! *-----------------------------------------------Combobox下拉框自动筛选(如在Google中输入字符)*--------------------------------------------By:js_szy注:未测试 在列表框combo 的 keypress中加如下代码:If nkeycode>0 If nkeycode=127 &&退格 If Asc(Right(Input_value,1)) <128 &&删除非汉字 Input_value=Left(Input_value,Len(Input_value)-1) Else &&删除汉字 Input_value=Left(Input_value,Len(Input_value)-2) Endif Else If nkeycode <>160 &&按的不是Alt+↓键 Input_value=Input_value+Chr(nkeycode) &&保存输入内容 Endif Endif Sele 表名 Set Filt To Alltrim(Input_value) $ 字段名称 Count To num If num=0 Then Set Filt To Input_value='' This.Value='' Endif Thisform.Combo.Requery Keyboard '{F4}'Endif