请各位好心朋友帮忙?100分求助!!!!!我在线等待!!!

qqyzq 2004-07-21 11:14:53
我的问题是这样的。我用的是vb.net+access数据,有三张表,一张是商品表,一张是供应商表,一张是订单主表,一张是订单明细表,内容如下:
初始数据:
商品表:
编号 名称 库存数量 成本
1001 商品A 100 10
1002 商品B 200 10
供应商表:
编号 名称 预付款 初次欠款 应付帐款
1001 供应商A 1000 0 0
1002 供应商B 0 100 100
现在我做了一张采购订单如下:
采购订单主表
单号 订单成本 订单金额 供应商编号
001 1000 1000 1002
明细表
单号 商品编号 数量 成本 合计
001 1001 40 10 400
001 1002 60 10 600
现在我有问题是这样:
当我把这张采购订单保存后要能自动更新如下数据,(包括新增,删除、修改订单)
一、商品表中的各自商品的数量要变成140和260也就是有订单新增后订单中相应高品的数量就得增加(删除和修改也是一样的)
二、供应商主数据中的应付帐款会相应增加变成-1100

我要实现以上功能不知哪位朋友可以帮我做个实例出来,小弟我刚学不久对这个存储过程一点也不了解,急需一个这样的实例,谢谢。




...全文
167 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
qqyzq 2004-07-23
  • 打赏
  • 举报
回复
好的,我正在准备改数据库
wumylove1234 2004-07-22
  • 打赏
  • 举报
回复
书上讲,MS也要准备将开发级别的ACCESS转到MSDE上嘛.所以你改用SQL SERVER吧,对机器也没有什么过多要求.数据也可以完全的导过来.
qqyzq 2004-07-22
  • 打赏
  • 举报
回复
说的事
Overriding 2004-07-21
  • 打赏
  • 举报
回复
try
.......



contextutil.setcomplete()

catch ....

....

contextutil.setabort()


finally
cnn.close()
end try

不好意思,上边可能没说清楚。
Overriding 2004-07-21
  • 打赏
  • 举报
回复
后者应该在添加引用.net组件里可以找到!
Overriding 2004-07-21
  • 打赏
  • 举报
回复
access并不支持真正的存储过程,存储过程级别的事务肯定不能用。
不过你可以用数据库级别的
Dim transaction As OleDbTransaction
.....
try
cnn.open
transaction=cnn.begintransaction
cmd1.transaction=transaction
cmd2.transaction=transaction
.......
cmd1.executenonquery()
cmd2.executenonquery()
.....
transaction.commit()
catch ex as exception
trsaction.rollback()
finally
cnn.close()
end try
注意cnn.close必须放到transaction.rollback后面
否则无法回滚。

你也可以用页面级别的事务。
原来的用system.enterpirseservices
现在2003里好像不在这里。
有个静态方法setcomplete这个放到try末尾
在catch末尾放setabort
qqyzq 2004-07-21
  • 打赏
  • 举报
回复
是啊,如果 改SQL哪不是要改很多东西,谁可以提供一个access的实例啊。感谢了
mooowx 2004-07-21
  • 打赏
  • 举报
回复
1.不用触发器写起来会比较复杂.最好改用SQL数据库.
2.要用到事务,保证你各步都执行成功,否则就还原所有的更改.
3.对于删除和修改记录,要先记下修改前的数据(旧数据),然后利用新旧数据对结果进行修改.如:应付帐款=应付帐款+(新合计-旧合计).
liuyi3000 2004-07-21
  • 打赏
  • 举报
回复
up
水如烟 2004-07-21
  • 打赏
  • 举报
回复
在现有条件下,管它效率不效率,完事了就OK,改进是以后的事,上头的事
qqyzq 2004-07-21
  • 打赏
  • 举报
回复
哦。看来这个问不知该如何解决了
水如烟 2004-07-21
  • 打赏
  • 举报
回复
小信息量的用ACCESS很不错了
如果是正规公司(维护知识产权的),ACCESS我想也是首选
而且拷到哪台机都可使用
很是方便
水如烟 2004-07-21
  • 打赏
  • 举报
回复
哪会过时,ACCESS对于小企业来说已经是绰绰有余了
SQL要求不是很高,当然看你的信息量了,不过,既然你目前还是用ACCESS,SQL在你的机上运行也是够用的了。
(不知我是不是在胡闹)
qqyzq 2004-07-21
  • 打赏
  • 举报
回复
没有人了啊
qqyzq 2004-07-21
  • 打赏
  • 举报
回复
是不是现在编写数据库应用软件用access过时了啊。但是用sql的话对计算机性能上是不是还有别的要求啊。
水如烟 2004-07-21
  • 打赏
  • 举报
回复
就算是DbDataAdapter.Update,你别以为它的效率很高,它也是一行一行的Update

为指定的 DataRow 对象数组中每个已插入、已更新或已删除的行调用相应的 INSERT、UPDATE 或 DELETE 语句。
水如烟 2004-07-21
  • 打赏
  • 举报
回复
你的数据库限死了,Access触发、存储、事务吗?它本身没有吧
不过它的DAO好象还是具有针对性的
个人想,如果用Access,好象还是用DAO好些
qqyzq 2004-07-21
  • 打赏
  • 举报
回复
这个方面是可以。但楼上朋友不认为这样做很不方便
水如烟 2004-07-21
  • 打赏
  • 举报
回复
对订单每行涉及的相关表进行Update或Insert
qqyzq 2004-07-21
  • 打赏
  • 举报
回复
以上的语句对我起不起作用。我想要的是谁能就针对我提出哪些数据库及数据给个实例,就用我的哪种方式,真的感谢了。同时也感谢上面的各位朋友。因我学习不久,所以需要的一份与我提出数据一样的的实例。

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧