ggggiss 发表于 2008-6-14 22:57:21

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

昨晚我找<xtybfgu>帮我写的个修改数据库的代码,可是只能读取修改就出错.我把代码和数据库文件发出来,大家帮我看看.
这个是界面.
http://images22.51.com/6000/yu122272274/9d484733e18a464b044be33f6b00c6d9.jpg
输入会员后能查找出来.
http://images22.51.com/6000/yu122272274/0275d02c604563ab210cdbd360d19bdb.jpg
然后就进行余款修改,改了数字点修改后就出错了.
http://images22.51.com/6000/yu122272274/b48b4084a0b7ad23d2bc1dea1ba7883b.jpg
http://images22.51.com/6000/yu122272274/93acafeb476a2b6338d148a7ed20c4ed.jpg
大家帮我看看这是哪里出了问题...谢谢了.

#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 & " setmoney=" &$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

ddx13 发表于 2008-6-14 23:16:02

密码有问题

ggggiss 发表于 2008-6-14 23:20:00

回复 3# ddx13 的帖子

密码绝对没问题的呀.我用ACCESS进去手动都能修改的.

ggggiss 发表于 2008-6-14 23:52:27

不是哟,我试了除NAME以外的都不能改.你不信试试嘛...
:face (30):

ggggiss 发表于 2008-6-14 23:57:38

晕,那就奇怪了...为什么就MONEY改不了啦.郁闷死.

ggggiss 发表于 2008-6-15 11:57:01

晕倒,怎么没人来解决呀..哎,郁闷死了.

ggggiss 发表于 2008-6-15 22:47:27

高手都跑哪里去了呀..这个问题难道就没有人能解决掉吗?

sanhen 发表于 2008-6-15 23:28:57

哈哈。。。非常经典的问题。。。

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

我也是搞了半天才查到这个问题。。。非常郁闷。。究其原因还在查找中。

sanhen 发表于 2008-6-15 23:32:39

在MDB 中money估计可能是保留关键词。换个名称即可。

ggggiss 发表于 2008-6-15 23:34:16

换个关键字?怎么操作?软件是这样的呀.要是修改了值就会出错了.

sanhen 发表于 2008-6-15 23:36:14

哦。知道你的问题所在了。。。提交修改的时候因为money的类型不是文本的。
是数字的,所以提交修改的时候必须转换才行。不然出错的。

ggggiss 发表于 2008-6-15 23:41:14

我是初学者,代码也是别人写的.麻烦说清楚点嘛..谢谢了.

qop1830 发表于 2008-6-19 02:19:10

啊我也碰到过这个问题还有 date也不行弄了半天才弄发现!=。=

llztt 发表于 2008-6-19 08:22:45

data 是最常见的保留关键词, 你竟然直接用??
money倒不象是关键词啊...

qop1830 发表于 2008-6-19 09:08:07

:face (36):      第一次搞这东西   所以。。。!!
页: [1] 2
查看完整版本: au3读取Access后修改数据(读取已实现,修改出错)