aksuxj 发表于 2009-2-12 21:22:07

access库操作问题,烦请高手支招

急,由于VB的label无法读取,偶实在找不到解决问题的办法了,貌似只能从库里想办法,可是偶不懂该如何对access做库操作,烦请高手指教。
规则:附件库中有一张表,5个字段,字段“价格(实际为点击计数器)”为依次递增的变量,偶想做以下操作,用鼠标选择表内的合同号,当当前合同号内“价格”字段数据递增为60的时候,显示提示信息:“当前数值为60”,并可手工删除当前合同号。每隔200毫秒刷新一次数据库内容
不知道有高手帮这个忙没,都快郁闷死了,附件中图片为论坛中下的范例,可是看不懂,无奈。
范例:
http://www.autoitx.com/forum.php?mod=viewthread&tid=873&extra=page%3D1

[ 本帖最后由 aksuxj 于 2009-2-13 19:53 编辑 ]

xinlu8439 发表于 2009-2-13 06:18:43

你想得太复杂了,au3和access的连接,3行代码就可以了,剩下的就是SQL语言的操作,跟au3没什么关系了。

Local $tDB_File = IniRead(@ScriptDir & "Config.ini", "Local Database", "Database File", "")
Local $Connection = ObjCreate("ADODB.Connection")
Local $RecordSet = ObjCreate("ADODB.Recordset")
$Connection.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $tDB_File)

以上就是连接Access的代码,$tDB_File读取ini文件获得Access文件路径,$Connection和$RecordSet是两个基本变量,$Connection.Execute("")用于执行插入、修改、删除等操作的SQL指令,$RecordSet.Open("SQL指令", $Connection)用于执行SELECT的SQL指令,并把搜索结果保存。

$RecordSet.Fields.Count保存了一共返回了多少数列
$RecordSet.Fields.Item($i).Value表示第$i数列的值(当然,一次只能处理一个row,所以你需要下面的代码来循环读取)


If Not $RecordSet.EOF Then
        $RecordSet.MoveFirst
        Do
                $SQL_Counter += 1
                ReDim $aReturn2D[$SQL_Counter][$RecordSet.Fields.Count] ; ReDim Array
                For $i = 0 To $RecordSet.Fields.Count-1 Step 1
                        $aReturn2D[$SQL_Counter-1][$i] = $RecordSet.Fields.Item($i).Value
                Next
                $RecordSet.MoveNext
        Until $RecordSet.EOF
EndIf
$RecordSet.Close
$Connection.Close

上面有一些Counter等计数变量,你可以忽略,基本你修改一下就可以成为自己UDF了

aksuxj 发表于 2009-2-13 19:52:46

偶已经找到另外的解决办法了,变通了一下方式,通过UDP来控制一个计算机群,谢谢楼上的回答,偶不懂编程,只是对AUTOIT的脚本编写有兴趣:face (27):
其实偶的目的很简单,这是一个抢拍的程序,偶就是为了抢那个60,现在用10台机器同时去抢那个60:face (33):
页: [1]
查看完整版本: access库操作问题,烦请高手支招