netba 发表于 2015-8-2 11:31:17

MDB 这个错误为什么出弹出一个错误.求解。

本帖最后由 netba 于 2015-8-2 12:25 编辑


$mdb_data_path = "date.mdb"
$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & $mdb_data_path)
$RS = ObjCreate("ADODB.Recordset")
$RS.ActiveConnection = $addfld
$RS.open("Select * from gbook Where id=5454")


If $RS.Fields(1).Value <> 5454 Then

      MsgBox(0,"结果","找到记录")

else
       MsgBox(0,"结果","没有记录")


EndIf

$RS.close

Exit
再做了修改
在表gbook id 找5454
找到就显示。找不到就退出 但是如果表里没有这个数。输出是一个错误的窗口
语句有什么问题吗。求改正

kemyliu 发表于 2015-8-2 11:54:11

不太懂得你的例子

kemyliu 发表于 2015-8-2 11:54:14

不太懂得你的例子

netba 发表于 2015-8-2 12:26:46

回复 2# kemyliu


    但是如果表里 id下找不到5454 这个数。输出是一个错误的窗口
这个窗口怎么搞掉。。或者不显示这个错误窗口

netba 发表于 2015-8-2 12:29:48



数据库文件

chzj589 发表于 2015-8-2 17:03:52

本帖最后由 chzj589 于 2015-8-2 17:18 编辑

回复 1# netba
应该是这样:

$mdb_data_path = @ScriptDir & "\date.mdb"
$tblname = "gbook"
$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & $mdb_data_path)
$RS = ObjCreate("ADODB.Recordset")
$RS .ActiveConnection = $addfld
$RS.Open("Select " & "*" & " From " & $tblname)
While Not $RS .eof And Not $RS .bof
        $tbl = $RS.Fields(0).Value
        $RS .movenext
WEnd
$RS .close
$addfld .Close
If $tbl >= 5454 Then
        MsgBox(64, "结果", "找到记录"& $tbl & "")
Else
        MsgBox(64, "结果", "没有这个记录,最高记录:" & $tbl & "")
EndIf

netba 发表于 2015-8-2 19:50:58

这个数据库是一个留言板的。中间有删除记录。ID 最大值。并不在表尾。。

本帖最后由 netba 于 2015-8-2 20:13 编辑

这个数据库是一个留言板的。中间有删除记录。ID 最大值。并不在表尾。。

怎么获取表 id 的最大值。。。

chzj589 发表于 2015-8-2 20:16:39

回复 7# netba

你提供的<数据库文件-date.mdb>有点问题。查询不是最后一条记录
$mdb_data_path = @ScriptDir & "\date.mdb"
$tblname = "gbook"
$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & $mdb_data_path)
$RS = ObjCreate("ADODB.Recordset")
$RS .ActiveConnection = $addfld
$RS.Open("Select " & "*" & " From " & $tblname)
While Not $RS .eof And Not $RS .bof
        $Item = $RS.Fields(0).value & @CR & $RS.Fields(1).value & @CR & $RS.Fields(2).value & @CR & $RS.Fields(3).value & @CR & $RS.Fields(4).value & @CR & $RS.Fields(5).value & @CR & $RS.Fields(6).value & @CR & $RS.Fields(7).value & @CR & $RS.Fields(8).value & @CR & $RS.Fields(9).value & @CR & $RS.Fields(10).value
        $tbl = $RS.Fields(0).Value
        $RS .movenext
WEnd
$RS .close
$addfld .Close
MsgBox(64, "结果", "找到记录,最后记录:"& $Item & "")
If $tbl = 1847 Then;5454
        MsgBox(64, "结果", "找到记录,最高记录:"& $tbl & "")
Else
        MsgBox(64, "结果", "没有这个记录,最高记录:" & $tbl & "")
EndIf

netba 发表于 2015-8-2 21:10:41

回复 8# chzj589


    是网页留言板的数据库 因为在留言过程中。有对记录有删除所以,ID最大值的那条记录才是最近输入的。

netba 发表于 2015-8-2 21:37:28

所以我之前发的代码是。通过一个数值去判断是不是最大值。但是如果ID下没有条件值的。程序就提示出错。。。

chzj589 发表于 2015-8-3 00:19:45

回复 10# netba
做个窗口,创建GUICtrlCreateListView控件,不就行了

chzj589 发表于 2015-8-3 09:26:27

回复 10# netba



kk_lee69 发表于 2015-8-5 09:27:14

回复 10# netba

問題解決了嗎

kk_lee69 发表于 2015-8-5 09:34:10

回复 10# netba

問題解決了嗎

SELECT *FROM gbook   WHERE id=(select max(id) fromgbook);

用這個語法 值接抓出最後一筆資料

tvzml 发表于 2015-8-6 22:45:55

需要对错误 预设 ,才不会错误了导致程序中断
页: [1] 2
查看完整版本: MDB 这个错误为什么出弹出一个错误.求解。