永发信息网

VB中MSFlexGrid中保存多行数据至ACCESS数据库

答案:2  悬赏:50  手机版
解决时间 2021-04-23 18:07

1、VB中MSFlexGrid中保存多行数据至ACCESS数据库

我直接在msflexgrid表中添加数据的,

还有一个问题.

If IsNumeric(MSFlexGrid1.TextMatrix(0, 3)) = False Then
MsgBox "数量不是数字!", , "提示!"
End If

这样判断是不行,麻烦帮改进一下,谢谢!

最佳答案

可以参考下面的代码:


Dim js As Integer
For i = 1 To flex1.Rows - 1
If flex1.TextMatrix(i, 1) <> "" And flex1.TextMatrix(i, 2) <> "" And flex1.TextMatrix(i, 4) = "" Then
MsgBox "第" & i & "行录入错误!", , "提示窗口"
Exit Sub
End If
If flex1.TextMatrix(i, 1) = "" Then
js = js + 1
End If
Next i
If js = flex1.Rows - 1 Then
MsgBox "没有要保存的数据!", , "提示窗口"
Exit Sub
End If
For i = 1 To flex1.Rows - 1
If flex1.TextMatrix(i, 1) <> "" And flex1.TextMatrix(i, 2) <> "" And flex1.TextMatrix(i, 5) <> "" Then
'添加新记录到"入库表"中
rs1.Open "select * from 入库表", Cnn, adOpenKeyset, adLockOptimistic
rs1.AddNew
If flex1.TextMatrix(i, 1) <> "" Then rs1.Fields("条形码") = flex1.TextMatrix(i, 1)
If flex1.TextMatrix(i, 2) <> "" Then rs1.Fields("书名") = flex1.TextMatrix(i, 2)
If flex1.TextMatrix(i, 3) <> "" Then rs1.Fields("作者") = flex1.TextMatrix(i, 3)
If flex1.TextMatrix(i, 3) <> "" Then rs1.Fields("出版社") = flex1.TextMatrix(i, 4)
rs1.Fields("数量") = Val(flex1.TextMatrix(i, 5))
rs1.Fields("单价") = Val(flex1.TextMatrix(i, 6))
rs1.Fields("金额") = Val(flex1.TextMatrix(i, 7))
If flex1.TextMatrix(i, 8) <> "" Then rs1.Fields("备注") = flex1.TextMatrix(i, 8)
If txtDate.text <> "" Then rs1.Fields("入库日期") = txtDate
If txtph <> "" Then rs1.Fields("入库单据号") = txtph
If txtjsr.text <> "" Then rs1.Fields("经手人") = txtjsr
rs1.Update
rs1.Close
rs2.Open "select * from 图书信息表 where 条形码='" + flex1.TextMatrix(i, 1) + "'and 书名='" + flex1.TextMatrix(i, 2) + "'", Cnn, adOpenKeyset, adLockOptimistic
If rs2.RecordCount > 0 Then
Cnn.Execute ("update 图书信息表 set 数量=数量+" & Val(flex1.TextMatrix(i, 5)) & ",金额=(数量+" & Val(flex1.TextMatrix(i, 5)) & ")*单价 where 条形码 ='" + flex1.TextMatrix(i, 1) + "'")

Else
rs2.AddNew
If flex1.TextMatrix(i, 1) <> "" Then rs2.Fields("条形码") = flex1.TextMatrix(i, 1)
If flex1.TextMatrix(i, 2) <> "" Then rs2.Fields("书名") = flex1.TextMatrix(i, 2)
If flex1.TextMatrix(i, 3) <> "" Then rs2.Fields("作者") = flex1.TextMatrix(i, 3)
If flex1.TextMatrix(i, 3) <> "" Then rs2.Fields("出版社") = flex1.TextMatrix(i, 4)
rs2.Fields("数量") = Val(flex1.TextMatrix(i, 5))
rs2.Fields("单价") = Val(flex1.TextMatrix(i, 6))
rs2.Fields("金额") = Val(flex1.TextMatrix(i, 7))
If flex1.TextMatrix(i, 8) <> "" Then rs2.Fields("备注") = flex1.TextMatrix(i, 8)
rs2.Update
End If
rs2.Close
End If
Next i

全部回答

if int(val(MSFlexGrid1.TextMatrix(0, 3)) )=0 then

MsgBox "数量不是数字!", , "提示!"

end if

至于写入ACCESS,首先添加引用adodb

代码大概如下

Dim Conn As ADODB.Connection Set Conn = New ADODB.Connection Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ACCESS数据库路径 & ";Persist Security Info=False;"

Conn.Execute " insert into 表名 values。。。。。。。。。'"

Conn.Close

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
蜀苑串串香地址在哪,我要去那里办事
找个视频里面的背景音乐
玉梁皇说他爱红尘雪,但为什么之前他多次要杀
如果喜欢一个男生,找你借钱,他会还我吗?
来自病房的你相声台词,形容病房的句子
凯斯纽荷兰农业机械在中国的销售额有多少
组装电脑的关键问题?
每日一句工作正能量,每日一句正能量励志,有
安装电脑系统突然断电对电脑系统影响大不大
严复译述的《天演论》,介绍了什么的思想
刚修正过的牙齿吃什么比较好?
如果森林有童话语句,如果有必要的话的英语
做手术疼吗?
怎样找到一份兼职工作
12道峰味地址有知道的么?有点事想过去
推荐资讯
用下载线一边下载东西,一边充电。对手机电池
谁能在DNF里卖我吧巨剑或给我吧!我是辽宁一
辛庄到虹井路
天龙八部帐号畅游可以改为搜狐么?
什么东西进去是硬的,出来是软的《不要想歪啦
悲惨的近义词和反义词
oppo103安装dnf手机令牌后在哪打开
怎么删除QQ空间好友秀中的好友?
PS2最终幻想XII会玩的达人教我下- -~!谢谢
魅族pro6体验机和真机有区别吗
女人最爱什么花?
三点水加曾什么名字,姓丁男孩带三点水旁名字
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?