【已解决】请教各位一个数据库查询问题!
本帖最后由 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可以正常运行,但无法查找姓名,一输入姓名查找就进入一个死循环了!
谢谢各位!!!
补充一下:
如果姓名是数字的话可以正常查询,也就是说只能查询数字格式的字符。
----------------------------------------------------------------------
已经解决了,问题是因为我的数据库中这两个字段的类型不相同,看来只能搜索同一类型的多个字段! 在线等待呀!拜托各位了!!!! 在线等得蛋有点疼了!! 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
试试看这样行不? 本帖最后由 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
都急死我了!郁闷呀!!! 把代码贴出来才能帮你分析...... 代码已经补上了,谢谢您了!! 确认一下:
输入框= $Input9
数据库=$mdb_data_path=@ScriptDir&"\.mdb"
数据库密码=$mdb_data_pwd=""
数据库表=$tblname
$name=""
$id=""
还有呢? 回复 1# meteor0330
个人建议,楼主使用sqlite数据库,比access优秀很多哦
难度也不大 谢谢楼上两位的热心帮忙,问题我已经解决了,是因为数据库的这两个字段类型不同,所以不能一起查询! 围观,火速围观
页:
[1]