当前位置:编程学习 > VB >>

VB datagrid列与列之间的计算(急等)

小弟用VB编写了一个程序,其中用到了两个ADO和两个DATAGRID,分别是ADODC1和ADODC2、DATAGRID1和DATAGRID2,现在我想让DATAGRID1中的C列(为空)等于DATAGRID2中的B列减去DATAGRID1中的B列的值,并逐条对应赋值。
如:DATAGRID1表示为               DATAGRID2表示为
A    B    C                       A      B     
0   30                            0     38
1   23                            1     33
2   20                            2     30
3   18                            3     22

赋值后的结果为
如:DATAGRID1表示为               DATAGRID2表示为
A    B    C                       A      B     
0   30    8                       0     38
1   23    10                      1     33
2   20    10                      2     30
3   18    4                       3     22
效果就是这样的,小弟菜鸟一个,还请各位高手给予赐教。在线等,急急急!!先行谢过了!
--------------------编程问答-------------------- 如果是地控件中计算,则循环控件的每一行并计算 --------------------编程问答-------------------- 一楼这位哥们,你说的原理我也明白,但你不要忘了,俺是菜鸟。请给出详细的原代码 --------------------编程问答-------------------- 用sql语句合成,再动态赋给ADODC1>刷新即可
sql="select s.A,s.B,t.B-s.B as C " & _
  "from (select A,B from 表1) as s,(select A,B from 表2) as t " & _
  "where s.A=t.A "
Adodc1.RecordSource = sql
Adodc1.Refresh
DATAGRID1.Refresh --------------------编程问答-------------------- 或者改成用MSHFlexGrid.这个控件获取单元格比较方便。
整个例子你看看。
MSHFlexGridA MSHFlexGridB两个控件


For i = 1 To 4'有多少行就循环多少次。这里可以设置
        If MSHFlexGridA.TextMatrix(i, 1) <> "" And MSHFlexGridB.TextMatrix(i, 1) <> "" Then
       MSHFlexGridA.TextMatrix(i, 2) = val(MSHFlexGridB.TextMatrix(i, 1)) - val(MSHFlexGridA.TextMatrix(i, 1)) '表格1的第二列等于表格2的第一列数据减去表格1的第一列数据。
        End If
补充:VB ,  控件
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,