Access交流中心

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

根据表的数字自动生成多行

sunrise  发表于:2017-11-07 11:15:57  
复制

表中**部份是Access表,在报表里根据包装的数自动生成红色的数吗? 
例如**表,深圳的1105除包装250.在红色部份里自动产生4行250的+尾数105.
最后E列=N列.


点击下载此附件

 

Top
chinasa 发表于:2017-11-07 13:48:15

在报表里没做过,不过可以考虑变通解决:

1.建立临时表TB1。

2.**表建立查询:包数=int(总份数/包装)  ;  零散包数量=总份数-包int(总份数/包装) *包装

3.用代码根据**表查询向TB1写数据:线路、站点、每包份数(就是等于包数)、包装这几个字段根据包数来确定循环次数。最后再增加一条记录来写零散包数量。



chinasa 发表于:2017-11-07 13:49:06
哈哈,本网站竟然对黄/色设置敏感词语?????

黎明 发表于:2017-11-07 14:36:19
原理,就是这样.前面的做好了,到循环次数那里就不知如何做了,chinasa方便留下QQ吗.

chinasa 发表于:2017-11-07 15:13:16

Dim rs As New ADODB.Recordset
Dim rs2 As New ADODB.Recordset
rs.Open "**表查询", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rs2.Open "临时表", CurrentProject.Connection, adOpenKeyset, adLockOptimistic

rs.MoveFirst
Do Until rs.EOF
  包数=rs("CARRIER")
  i=1
  do until i>包数
    rs2.AddNew
    rs2![线路] = rs("线路")
    rs2![每包份数] = rs("包装")
    rs2.Update
    i=i+1
  loop

  if 零散包数量>0 then
    rs2.AddNew
    rs2![线路] = rs("线路")
    rs2![每包份数] = rs("包装")
    rs2.Update
  end if

rs.MoveNext
Loop



chinasa 发表于:2017-11-07 15:13:49
我没有实际测试过,你测试下吧。思路大概就是这么个思路。

黎明 发表于:2017-11-07 16:12:43

chinasa大神,求指教,看下我的Access,加代码到那里呢。



chinasa 发表于:2017-11-08 16:34:30
你没上传过ACCESS啊。

黎明 发表于:2017-11-08 17:06:05
测试

 



chinasa 发表于:2017-11-08 17:09:20
chinasa 发表于:2017-11-08 17:11:17

如果出错,请注意是否添加了以下引用

microsoft dao 3.6 object library

microsoft activex data objects 2.1



黎明 发表于:2017-11-08 17:40:33
chinasa对就这样,但是每次都要按窗体的按钮吗,如果不小心按两下就数就重复了。

chinasa 发表于:2017-11-08 17:50:55

看你需求了,有很多方法,比如:

解决重复问题:判断序号是否重复再执行。建立临时表,每次清空临时数据。

解决点按钮问题:可以把代码写在加载事件,或其他特定事件中。

这些要根据你实际程序情况来决定。



黎明 发表于:2017-11-09 10:12:43
嗯,我们每天都有不同物品的数要这样算出打印标签。最好就是黄 色的数一输入,红色的数就一下刷新出来。黄 色表的数一清除,红色的表就消失。这样也很好了,谢谢啦!

sunrise 发表于:2017-11-09 15:39:02

点击下载此附件

如果能解决重复的问题就完美了。



chinasa 发表于:2017-11-10 08:26:57

如果你想**的数一输入,红色的就刷新出来。那么就把代码写在**的更新后事件中。清除也类似。



chinasa 发表于:2017-11-10 10:11:46
sunrise 发表于:2017-11-12 10:55:27
谢谢大神了,很好受教了,看来要狠学VB才行。

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