找回密码
 加入
搜索
查看: 1766|回复: 2

[AU3基础] 关于ACCESS的问题

[复制链接]
发表于 2011-12-30 20:12:24 | 显示全部楼层 |阅读模式
[au]#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
$mdb_data_path="D:\UserFile\Desktop\riftdata.mdb"
$tblname="acc"
$mdb_data_pwd="111"
$t="*"
$hListView=ControlGetHandle("客户端监控","","[CLASS:TListView;INSTANCE:1]")
$hnu=_GUICtrlListView_GetItemCount($hListView)
$wnu=_GUICtrlListView_GetColumnCount($hListView)
Global $array[$hnu][$wnu]
For $i=0 To $hnu-1
        $harray=_GUICtrlListView_GetItemTextArray($hListView,$i)
        For $k=0 To $wnu-1
                $array[$i][$k]=$harray[$k+1]
        Next
Next
For $i=0 To $hnu-1
        up($array[$i][8],$array[$i][4])
Next
Func up($data1,$data2)   
                $addfld = ObjCreate("ADODB.Connection")
                $addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" &$mdb_data_path & ";Jet Oledb:Database Password=" & $mdb_data_pwd)
                                $addfld.execute("update " & $tblname & " set  y_stock='"&$data1&"',now_stock='"&$data1&"' WHERE role_name" & " = "&$data2)
                $addfld.close
EndFunc[au]
总是在最后一步出错,我看不出来哪里错了,希望高手指点一下
发表于 2011-12-30 23:15:11 | 显示全部楼层
本帖最后由 水木子 于 2011-12-30 23:21 编辑

参数说明:
$adSource       ;数据库路径
$adTable         ;表
$sFieldNames  ;要更新的字段名
$sNewData     ;新文本
$adQuery        ;需要更新的项目ID
$DatabasePassword ;数据库密码

Func _UpdateData($adSource, $adTable, $sFieldNames, $sNewData, $adQuery, $DatabasePassword = '');更新数据
        Local $sUpdateText
        $aFieldNames = StringSplit($sFieldNames, '|')
        $aUpdateText = StringSplit($sNewData, '|')

        If $aFieldNames[0] <> $aUpdateText[0] Then Return 0

        For $i = 1 To $aFieldNames[0]
                $sUpdateText &= $aFieldNames[$i] & '=' & "'" & $aUpdateText[$i] & "',"
        Next

        $sUpdateText = StringTrimRight($sUpdateText, 1)

        $oADO = ObjCreate("ADODB.Connection")
        $oADO.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $adSource & "; Jet OLEDB:Database Password=" & $DatabasePassword)
        $oADO.execute("Update " & $adTable & " Set " & $sUpdateText & " WHERE ID" & " = " & $adQuery)
        $oADO.close
EndFunc   ;==>_UpdateData



还有什么问题可以看看下面的例子!不过没有做错误处理,全是以我自己的理解去写的,将就看吧!
有兴趣的朋友可以整理下。。

本帖子中包含更多资源

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

×

评分

参与人数 1金钱 +10 收起 理由
love5173 + 10

查看全部评分

 楼主| 发表于 2011-12-31 10:26:50 | 显示全部楼层
回复 2# 水木子
错误找出来了,是数据库语言里面的问题
#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
$mdb_data_path="D:\UserFile\Desktop\riftdata.mdb"
$tblname="acc"
$mdb_data_pwd="111"
$t="*"
$hListView=ControlGetHandle("客户端监控","","[CLASS:TListView;INSTANCE:1]")
$hnu=_GUICtrlListView_GetItemCount($hListView)
$wnu=_GUICtrlListView_GetColumnCount($hListView)
Global $array[$hnu][$wnu]
For $i=0 To $hnu-1
        $harray=_GUICtrlListView_GetItemTextArray($hListView,$i)
        For $k=0 To $wnu-1
                $array[$i][$k]=$harray[$k+1]
        Next
Next
For $i=0 To $hnu-1
        up($array[$i][8],$array[$i][4])
Next
Func up($data1,$data2)   
                $addfld = ObjCreate("ADODB.Connection")
                $addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" &$mdb_data_path & ";Jet Oledb:Database Password=" & $mdb_data_pwd)
                                $addfld.execute("update " & $tblname & " set  y_stock='"&$data1&"',now_stock='"&$data1&"' WHERE role_name" & " = '"&$data2"'")
                $addfld.close
EndFunc
正确的在上面,是数据库里面少了引号造成的,这样的错误还真不好找
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-20 19:55 , Processed in 0.074956 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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