设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 2628|回复: 10
打印 上一主题 下一主题

[查询] 金税接口文本的格式拆分

[复制链接]
跳转到指定楼层
1#
发表于 2009-5-25 19:42:53 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
导出公司ERP数据库中的销售订单数据后,通过Access处理,转换成金税开票要求的格式,
现在遇到一个问题是:ERP中直接导出的一个订单的其中一个或多个物料开票金额>999999.99,而金税要求的最大金额是<100W,所以要把ERP中的订单中的物料行按金额拆分成多行! 要求请看附件图片

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
11#
发表于 2009-5-27 05:54:13 | 只看该作者
本帖最后由 todaynew 于 2009-5-27 21:14 编辑
能不用窗体显示吗,最好直接拆分表中的数据到新表,因为并不需要点击后一个一个单号的拆!
rainless_9 发表于 2009-5-26 22:22

窗体还是只需要的,原因在于总需要在窗体上触发某个事件来完成拆分的工作。倒是可以一次将所有数据拆分完毕,方法是套一个移动主窗体记录的循环即可,方法如下:

Private Sub 拆分_Click()
.....
.....
Q = 999999.99
sql2 = "DELETE * FROM 临时表"
CurrentDb.Execute sql2
DoCmd.GoToRecord acDataForm, "主窗体", acFirst
Do While Me.单号.Value <> ""
      sql1 = "select * from 订单明细 where 单号='" & Me.单号.Value & "'"
      rs.Open sql1, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
      For i = 1 To rs.RecordCount
          ......
          ......
      Next
      rs.Close
      DoCmd.GoToRecord acDataForm, "主窗体", acNext
Loop
Me.Form.Requery
End Sub
10#
 楼主| 发表于 2009-5-26 22:22:45 | 只看该作者
能不用窗体显示吗,最好直接拆分表中的数据到新表,因为并不需要点击后一个一个单号的拆!
9#
发表于 2009-5-26 20:36:37 | 只看该作者
非常有趣,让我下了学学。
8#
发表于 2009-5-26 19:20:38 | 只看该作者
本帖最后由 todaynew 于 2009-5-26 20:00 编辑
38216
rainless_9 发表于 2009-5-26 13:17





Private Sub 拆分_Click()
Dim rs As New ADODB.Recordset
Dim sql1 As String, sql2 As String
Dim i As Long, m As Long, n As Long
Dim x As Double, y As Double, Q As Double, r As Double
Q = 999999.99
sql1 = "select * from 订单明细 where 单号='" & Me.单号.Value & "'"
rs.Open sql1, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
sql2 = "DELETE * FROM 临时表"
CurrentDb.Execute sql2
For i = 1 To rs.RecordCount
    If rs("金额") > Q Then
        m = Int(rs("金额") / Q)
        r = Round(rs("金额") / (m + 1), 2)
        x = rs("数量")
        y = rs("金额")
        For n = 1 To m
            sql2 = "INSERT INTO 临时表 ( 单号, 名称, 单位, 数量, 金额 ) "
            sql2 = sql2 & "VALUES ('" & rs("单号") & "','" & rs("名称") & "','" & rs("单位") & "'," & Round(rs("数量") * r / rs("金额"), 0) & "," & r & ")"
            CurrentDb.Execute sql2
            x = x - Round(rs("数量") * r / rs("金额"), 0)
            y = y - r
        Next
        sql2 = "INSERT INTO 临时表 ( 单号, 名称, 单位, 数量, 金额 ) "
        sql2 = sql2 & "VALUES ('" & rs("单号") & "','" & rs("名称") & "','" & rs("单位") & "'," & x & "," & y & ")"
        CurrentDb.Execute sql2
    Else
        sql2 = "INSERT INTO 临时表 ( 单号, 名称, 单位, 数量, 金额 ) "
        sql2 = sql2 & "VALUES ('" & rs("单号") & "','" & rs("名称") & "','" & rs("单位") & "'," & rs("数量") & "," & rs("金额") & ")"
        CurrentDb.Execute sql2
    End If
    rs.MoveNext
Next
Me.临时子窗体.Form.Requery
rs.Close
End Sub

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
7#
 楼主| 发表于 2009-5-26 19:18:10 | 只看该作者
ffff
6#
 楼主| 发表于 2009-5-26 13:17:48 | 只看该作者

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
5#
发表于 2009-5-26 13:14:36 | 只看该作者
一两句话似乎说不大清楚,要不你把实例传上来,我帮你写写试试。
4#
 楼主| 发表于 2009-5-26 12:34:44 | 只看该作者
再看看
3#
 楼主| 发表于 2009-5-25 22:22:09 | 只看该作者
如果要同时拆分一个订单多行>100W的 or 多个订单多行>100W  改如何操作?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-26 05:44 , Processed in 0.115552 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表