一.源文件是一个EXCEL表格,格式如下
行号 卡号 金额
0 a01 100
1 a01 200
2 a01 300
3 a02 100
...
二.要求把卡号相同的金额汇总后插入一个SQLSERVER数据库中
即插入SQLSERVER的表中应该是这样
卡号 金额
a01 600
a02 100三.用VB来写判断如何写
行号 卡号 金额
0 a01 100
1 a01 200
2 a01 300
3 a02 100
...
二.要求把卡号相同的金额汇总后插入一个SQLSERVER数据库中
即插入SQLSERVER的表中应该是这样
卡号 金额
a01 600
a02 100三.用VB来写判断如何写
-_-!Up......
例如:
cardno=""
cardamount=0
for i=2 to .UsedRange.Rows.Count
if cardno=.cells(i,2) then
cardamount=cardamount+.cells(i,3)
?什么时机插入相同卡号的汇总金额到SQL中,这样显然不行,
end if
'插入不相同的部分内容到SQL
...
next
Excel 是 Jet Engine 的外部数据库,可以建立连接后直接查询:Dim cn As New ADODB.Connection, rs As New ADODB.Recordset
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Book1.xls;Extended Properties=Excel 8.0;"
rs.Open "SELECT 卡号, Sum(金额) As 汇总金额 From [Sheet1$] GROUP BY 卡号", cn
cardamount=0
for i=2 to .UsedRange.Rows.Count
’循环的第一次卡号一定不形同
'循环的第二次卡号相同了,按上面的那个EXCEL
'循环的第三次卡号相同,按上面的那个EXCEL
if cardno<>.cells(i,2) then 'EXCEL的I行2列为卡号
cardno=.cells(i,2)
'插入不相同的部分内容到SQL
...
end if
cardamount=cardamount+.cells(i,3)
'如果在这里插入汇总金额也不行,因为还不知道下一次EXCEL中的卡号是否相同,如果相同,这里插入就不对了
next