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 , 控件