VB SQL 做的软件 程序错误

PrivateSubCommand1_Click()DimnAsIntegern=Val(Text2.Text)cn.Open"DSN=jyz;"Setcmd.Activ... Private Sub Command1_Click()
Dim n As Integer
n = Val(Text2.Text)
cn.Open "DSN=jyz;"
Set cmd.ActiveConnection = cn
cmd.CommandText = "insert into 加油信息表(卡号,月计划量,加油量,日期) values ('" + Text1.Text + "','100','" + Text2.Text + "',getdate())"
cmd.CommandText = " update 油卡信息表 set 剩余油量 = 剩余油量 - 'n ' where 卡号 = '" & Text1.Text & "'"

cmd.CommandType = adCmdText
rst.Open cmd

MsgBox "加油成功"

End Sub
程序错误,
错误原因是 : 剩余油量= 剩余油量- ‘n’ 那个减号 有问题 。求解决
展开
 我来答
天上曲_one
2013-05-31 · TA获得超过639个赞
知道小有建树答主
回答量:238
采纳率:0%
帮助的人:216万
展开全部
改成:
= " update 油卡信息表 set 剩余油量 = 剩余油量 - '" & n & "' where 卡号 = '" & Text1.Text & "'"

= " update 油卡信息表 set 剩余油量 = 剩余油量 - " & n & " where 卡号 = '" & Text1.Text & "'"
我没有试过,数字好像是加要单引号的, 但是不能在双引号内部写'n', 这样的话,n会被当做一个字符, 无法参于运算
追问
按你的改好了,不过貌似只执行了后一句,即 往油卡信息表中更新剩余油量 这一句。上面的那句向加油信息表中增加本次加油记录的 却没有执行。改怎么办
追答
因为你写了两个cmd.CommandText = "........."
而后面只写了一个RS.open cmd
要在每一个cmd.CommandText = "......."之后都执行RS.open cmd才可以
改成:
cmd.CommandText = "........."
rst.open cmd
rst.close
cmd.CommandText = "........."
rst.open cmd
下次用之前要先关闭的
75307097
2013-05-31 · 超过32用户采纳过TA的回答
知道答主
回答量:172
采纳率:0%
帮助的人:98.9万
展开全部
text2.text是加油量吧,应该将值转换成数值之后再运算,估计你数据库字段属性为数值吧
更多追问追答
追问
是的 ,改如何办,请把代码写下,小白一个,你这样说完我还是不知怎弄啊
追答
n = Val(trim(Text2.Text))

cmd.CommandText = "insert into 加油信息表(卡号,月计划量,加油量,日期) values ('" + Text1.Text + "',100,'" + Val(trim(Text2.Text))+ "',getdate())"

cmd.CommandText = " update 油卡信息表 set 剩余油量 = 剩余油量 -n where 卡号 = '" & Text1.Text & "'"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
robgxb000
2013-05-31 · TA获得超过206个赞
知道小有建树答主
回答量:245
采纳率:0%
帮助的人:158万
展开全部
问题是不是在 'n ' 啊,数字运算不加'' 吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式