找回密码
 加入
搜索
查看: 10246|回复: 29

au3读取Access后修改数据(读取已实现,修改出错)

[复制链接]
发表于 2008-6-14 22:57:21 | 显示全部楼层 |阅读模式
昨晚我找<xtybfgu>帮我写的个修改数据库的代码,可是只能读取修改就出错.我把代码和数据库文件发出来,大家帮我看看.
这个是界面.

输入会员后能查找出来.

然后就进行余款修改,改了数字点修改后就出错了.


大家帮我看看这是哪里出了问题...谢谢了.

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$datename="NetBarDB.mdb"
$datepass="chuangyuan+toprenren"
$T="*"
$tblname="tbMember"
#Region ### START Koda GUI section ### Form=C:\Documents and Settings\Administrator\桌面\Form1.kxf
$Form1 = GUICreate("Form1", 344, 152, 351, 301)
$Label1 = GUICtrlCreateLabel("会员卡号:", 16, 24, 55, 17)
$hek=GUICtrlCreateInput("", 96, 24, 153, 21)
$Button1 = GUICtrlCreateButton("查找", 272, 24, 41, 25, 0)
$Label2 = GUICtrlCreateLabel("用户名:", 24, 72, 43, 17)
$textname=GUICtrlCreateInput("", 96, 72, 153, 21)
GUICtrlSetState (-1,$GUI_DISABLE)
$Label3 = GUICtrlCreateLabel("余款", 32, 120, 28, 17)
$textmoney=GUICtrlCreateInput("", 96, 112, 153, 21)
$Button2 = GUICtrlCreateButton("修改", 272, 112, 49, 25, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
         case $Button1
            du()
         case $Button2
            up()
        EndSwitch
WEnd


Func up()
         $Strn=GUICtrlRead($hek)
                        $cy=GUICtrlRead($textmoney)
            $addfld = ObjCreate("ADODB.Connection")
           $addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & $datename & ";Jet Oledb:Database Password=" & $datepass)
                        $sQuery ="update " & $tblname & " set  money=" &$cy & " WHERE cardNo" & " = "&$Strn
           MsgBox(0,"",$sQuery)
           $addfld.execute($sQuery)
           $addfld.close
    MsgBox(4096, "提示:","    更新成功!!!")
EndFunc



Func du()
     Global $name,$money
         $Strn=GUICtrlRead($hek)
            $addfld = ObjCreate("ADODB.Connection")
             $RS = ObjCreate("ADODB.Recordset")
            $addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & $datename & ";Jet Oledb:Database Password=" & $datepass)
         $RS.ActiveConnection = $addfld
                $jy="select * from tbMember where cardNO= '"&$Strn&"'" 
                  $RS.Open ($jy)
               if $rs.eof and $rs.bof then 
               MsgBox(64,"提示","没有这个会员号",5)
               GUICtrlSetData ( $hek,"")
                ControlFocus ( "", "", $hek)
           Else
            GUICtrlSetData ( $textname,$RS.Fields (10).value)
                         GUICtrlSetData ( $textmoney,$RS.Fields (3).value) 
          EndIf
           $rs.close
          $addfld.Close
EndFunc

本帖子中包含更多资源

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

×
发表于 2008-6-14 23:16:02 | 显示全部楼层
密码有问题
 楼主| 发表于 2008-6-14 23:20:00 | 显示全部楼层

回复 3# ddx13 的帖子

密码绝对没问题的呀.我用ACCESS进去手动都能修改的.
 楼主| 发表于 2008-6-14 23:52:27 | 显示全部楼层
不是哟,我试了除NAME以外的都不能改.你不信试试嘛...
 楼主| 发表于 2008-6-14 23:57:38 | 显示全部楼层
晕,那就奇怪了...为什么就MONEY改不了啦.郁闷死.
 楼主| 发表于 2008-6-15 11:57:01 | 显示全部楼层
晕倒,怎么没人来解决呀..哎,郁闷死了.
 楼主| 发表于 2008-6-15 22:47:27 | 显示全部楼层
高手都跑哪里去了呀..这个问题难道就没有人能解决掉吗?
发表于 2008-6-15 23:28:57 | 显示全部楼层
哈哈。。。非常经典的问题。。。

MDB的字段名称不要用MONEY,不然会出错。。。

我也是搞了半天才查到这个问题。。。非常郁闷。。究其原因还在查找中。
发表于 2008-6-15 23:32:39 | 显示全部楼层
在MDB 中money估计可能是保留关键词。换个名称即可。
 楼主| 发表于 2008-6-15 23:34:16 | 显示全部楼层
换个关键字?怎么操作?软件是这样的呀.要是修改了值就会出错了.
发表于 2008-6-15 23:36:14 | 显示全部楼层
哦。知道你的问题所在了。。。提交修改的时候因为money的类型不是文本的。
是数字的,所以提交修改的时候必须转换才行。不然出错的。
 楼主| 发表于 2008-6-15 23:41:14 | 显示全部楼层
我是初学者,代码也是别人写的.麻烦说清楚点嘛..谢谢了.
发表于 2008-6-19 02:19:10 | 显示全部楼层
啊  我也碰到过这个问题  还有 date也不行  弄了半天才弄发现!=。=
发表于 2008-6-19 08:22:45 | 显示全部楼层
data 是最常见的保留关键词, 你竟然直接用??
money倒不象是关键词啊...
发表于 2008-6-19 09:08:07 | 显示全部楼层
      第一次搞这东西   所以。。。!!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-25 02:00 , Processed in 0.088672 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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