找回密码
 加入
搜索
查看: 4167|回复: 10

[AU3基础] 【已解决】请教各位一个数据库查询问题!

  [复制链接]
发表于 2012-10-17 14:58:55 | 显示全部楼层 |阅读模式
本帖最后由 meteor0330 于 2012-10-17 17:56 编辑
;搜索
Func sou()
     GUICtrlSendMsg($ListView1, $LVM_DELETEALLITEMS, 0, 0)
                $sou1 =GUICtrlRead($Input9)
                        $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  "& $T & " FROM " & $tblname & " IN '" & $mdb_data_path & "' WHERE name = '" & $sou1 & "' OR id = " & $sou1)
                        ;$RS.Open ("SELECT  "& $T & " FROM " & $tblname & " IN '" & $mdb_data_path & "' WHERE name = '" & $sou1 & "' OR id= '" & $sou1 & "'")
                        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&"|"& $RS.Fields (4).value,$ListView1 )
                                $rs.movenext
            WEnd
                        $rs.close
                        $addfld.Close
EndFunc
代码已经补上。
我的本意是想通过一个输入框来查询数据库,可以查找姓名或者id号都可以。
现在的问题是查找id可以正常运行,但无法查找姓名,一输入姓名查找就进入一个死循环了!

谢谢各位!!!

补充一下:
如果姓名是数字的话可以正常查询,也就是说只能查询数字格式的字符。

----------------------------------------------------------------------
已经解决了,问题是因为我的数据库中这两个字段的类型不相同,看来只能搜索同一类型的多个字段!
 楼主| 发表于 2012-10-17 15:15:04 | 显示全部楼层
在线等待呀!拜托各位了!!!!
 楼主| 发表于 2012-10-17 15:37:02 | 显示全部楼层
在线等得蛋有点疼了!!
发表于 2012-10-17 16:05:50 | 显示全部楼层
Func xun() ;开支查询
        If Not GUICtrlRead($Input19) = '' Then
                $read19 = GUICtrlRead($Input19)
                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 riqi='" & $read19 & "' OR leibie='" & $read19 & "'OR zaiyao='" & $read19 & "'")
                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 & "|" & $RS.Fields(4).value & "|" & $RS.Fields(5).value & "|" & $RS.Fields(6).value, $ListView3)
                        $RS.movenext
                WEnd
                $RS.close
                $addfld.close
         Else
        MsgBox(48, '错误', '你需要输入一个关键字')
        EndIf
EndFunc   ;==>xun

试试看这样行不?
 楼主| 发表于 2012-10-17 16:15:40 | 显示全部楼层
本帖最后由 meteor0330 于 2012-10-17 16:18 编辑

回复 4# chzj589


    刚才试过了,按照您的样子改了以后,什么都不能查询了,一点查询就进入死循环了!
不会是我的编译环境的问题吧?我的是64位的win7旗舰版,安装的Autoit是从这里下载的最新的3.3.9.4

+>执行环境:
+>        CPU构架:        X64
+>        系统构架:        X64
+>        系统语言:        0804
+>        键盘布局:        00000804
+>        内存总量:        4061MB
+>        内存剩余:        2322MB
+>        操作系统:        WIN_7/Service Pack 1
+>        AU3版本:        3.3.9.4

都急死我了!郁闷呀!!!
发表于 2012-10-17 16:23:19 | 显示全部楼层
把代码贴出来才能帮你分析......
 楼主| 发表于 2012-10-17 16:28:29 | 显示全部楼层
代码已经补上了,谢谢您了!!
发表于 2012-10-17 17:57:41 | 显示全部楼层
确认一下:
输入框= $Input9
数据库=$mdb_data_path=@ScriptDir&"\.mdb"
数据库密码=$mdb_data_pwd=""
数据库表=$tblname
$name=""
$id=""
还有呢?
发表于 2012-10-17 20:12:20 | 显示全部楼层
回复 1# meteor0330


    个人建议,楼主使用sqlite数据库,比access优秀很多哦
难度也不大
 楼主| 发表于 2012-10-17 21:15:17 | 显示全部楼层
谢谢楼上两位的热心帮忙,问题我已经解决了,是因为数据库的这两个字段类型不同,所以不能一起查询!
发表于 2013-5-13 16:48:10 | 显示全部楼层
围观,火速围观
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-29 05:30 , Processed in 0.106082 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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