Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

如何根据一个张表计算后生成一张表?

liu  发表于:2013-11-28 12:40:40  
复制

有一张表,内容格式如下:

号码 总金额
13800000000 500
13444444401 700

 

现在希望根据这张表生成一张表,格式如下:

号码 总金额 面值
13800000000 500 300
13800000000 500 100
13800000000 500 100
13444444401 700 300
13444444401 700 300
13444444401 700 100

备注:面值之和=总金额(当前我们只有300和100两种面值)。

如何实现呢?

 

 

Top
chinasa 发表于:2013-11-28 13:17:10

你的意思是优先生成300面值,不足300的金额就生成100的面值吗?

如果这样那就先总金额除以300取整数,就是300面值的记录数,剩余数量再除以100就是100面值的记录数。再根据这两个记录数分别写入300的记录和100的记录。



liu 发表于:2013-11-28 13:39:51

你说的思路我也知道,但是不知道怎么用vba实现。。。。



chinasa 发表于:2013-11-28 17:13:59

Dim rs As New ADODB.Recordset

Dim rs2 As New ADODB.Recordset

rs.Open "表名称1", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rs2.Open "表名称2", CurrentProject.Connection, adOpenKeyset, adLockOptimistic

rs.MoveFirst
Do Until rs.EOF
HM = rs("字段名")
ZJE = rs("字段名î")
MZ300 = Int(ZJE / 300)
MZ100 = Int((ZJE - MZ300 * 300) / 100)
I300 = 1
I100 = 1

Do Until I300 > MZ300
rs2.AddNew
rs2!字段名 = HM
rs2!字段名 = ZJE
rs2!字段名 = 300
rs2.Update
I300 = I300 + 1
Loop

Do Until I100 > MZ100
rs2.AddNew
rs2!字段名 = HM
rs2!字段名 = ZJE
rs2!字段名 = 100
rs2.Update
I100 = I100 + 1
Loop

rs.MoveNext
Loop
rs.Close



chinasa 发表于:2013-11-28 17:16:04

以后最好自己先做,遇到具体不会的再问,否则问题太大了。

 

乱码的内容分别是两个表的名字

如果出错,请注意引用。



liu 发表于:2013-11-28 20:04:39

非常感谢!



总记录:5篇  页次:1/1 9 1 :