找回密码
 加入
搜索
查看: 12965|回复: 19

[效率算法] 按字母查询,列出相关数据

 火.. [复制链接]
发表于 2012-10-21 20:28:07 | 显示全部楼层 |阅读模式

如图,绿色区域 ,列我在acc中有aaaaaa/aassss/ssaass/bbssbb/aabbss几个英文数组!
我在搜索中搜aaa,直接列出数组中有包含aaa的数组,然后列出相关数组aaaaaa/aassss/ssaass/aabbss供选择!
不知道怎么实现,上面图只是PS而已!
望高人帮忙下!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-10-21 20:42:17 | 显示全部楼层
回复 1# 那片叶子
论坛里好像有例子,好好搜搜看
发表于 2012-10-21 21:01:39 | 显示全部楼层
回复 1# 那片叶子


    SQL语句就可以实现,select * from 表名 where 列名 like 'aa%'


%为sql语句通配符
发表于 2012-10-22 11:56:20 | 显示全部楼层
我觉得3楼写不完全!! 如果数量过多的话``那combo列表会拉的很长...
select top 5 * from 表名 where 列名 like 'aa%'   order by 编号
发表于 2012-10-22 21:21:48 | 显示全部楼层
我觉得3楼写的不对,四楼思路有误.那我那个名字确实有很多,那不5个后的就操作不了了吗.下拉框拉很长又怎样,总比不全好把.
"select * from 表名 where 列名 like '%查询%' order by 排序列" 
 楼主| 发表于 2012-10-23 11:24:18 | 显示全部楼层
能不能麻烦楼上几位帮忙下载下附件写下?
发表于 2012-10-23 12:50:45 | 显示全部楼层
是这样子:

Func xun()
        If Not GUICtrlRead($Input5) = '' Then
                $read10 = GUICtrlRead($Input5)
                GUICtrlSendMsg($ListView1, $LVM_DELETEALLITEMS, 0, 0)
                $addfld = ObjCreate("ADODB.Connection")
                $addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $mdb_data_path & ";Jet Oledb:Database Password=" & $mdb_data_pwd)
                $RS = ObjCreate("ADODB.Recordset")
                $RS.ActiveConnection = $addfld
                $RS.open("SELECT * FROM " & $tblname & " WHERE name='" & $read10 & "' OR ssex='" & $read10 & "'")
                While Not $RS.eof And Not $RS.bof
                        If @error = 1 Then ExitLoop
                        GUICtrlCreateListViewItem($RS.Fields(0).value & "|" & $RS.Fields(1).value & "|" & $RS.Fields(2).value & "|" & $RS.Fields(3).value, $ListView1)
                        $RS.movenext
                WEnd
                $RS.close
                $addfld = ObjCreate("ADODB.Connection")
                $addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $mdb_data_path & ";Jet Oledb:Database Password=" & $mdb_data_pwd)
                $RS = ObjCreate("ADODB.Recordset")
                $RS.ActiveConnection = $addfld
                $RS.Open("SELECT name FROM " & $tblname)
                While Not $RS.eof And Not $RS.bof
                        If @error = 1 Then ExitLoop                       
                        GUICtrlSetData($Input5, $RS.Fields(0).value & "")
                        $RS.movenext
                WEnd
                $RS.close
                $addfld.Close
        Else
                MsgBox(48, '出错啦', '你需要输入一个关键字')
        EndIf
EndFunc   ;==>xun

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2012-10-23 18:11:17 | 显示全部楼层
是这样子:

Func xun()
        If Not GUICtrlRead($Input5) = '' Then
                $read10 = GUICtrlRead($Input5)
...
chzj589 发表于 2012-10-23 12:50


我怎么输什么字母或数字,查到的都是那几个数据啊!
我的意思是比如 查询aa   ,然后那几个数据中有aa的列出来供选择!
发表于 2012-10-23 19:47:44 | 显示全部楼层
在$ListView1显示还是在$Input5显示?
发表于 2012-10-23 20:45:43 | 显示全部楼层
"select top 5 * from 表名 where 列名 like '%查询%' order by 排序列"
发表于 2012-10-24 10:26:06 | 显示全部楼层
$Input5 = GUICtrlCreateCombo("", 95, 420, 121, 21)

;GUICtrlSetData(-1, "aaaaaa|aassss|ssaass|aabbss", "aa")???????
发表于 2012-10-24 10:30:23 | 显示全部楼层
$Input5 = GUICtrlCreateCombo("", 95, 420, 121, 21)

;GUICtrlSetData(-1, "aaaaaa|aassss|ssaass|aabbss", "aa")???????
 楼主| 发表于 2012-10-24 10:54:08 | 显示全部楼层
;GUICtrlSetData(-1, "aaaaaa|aassss|ssaass|aabbss", "aa")???????
这个我是演示结果的! 忘记删掉了
发表于 2012-10-24 11:37:02 | 显示全部楼层
删掉后就能全部显示在 $Input5 = GUICtrlCreateCombo("", 95, 420, 121, 21)
 楼主| 发表于 2012-10-24 15:57:43 | 显示全部楼层
我查AA的时候,连bbssbb都显示上面去了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-23 17:26 , Processed in 0.350430 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表