关于两表间的取数问题!急!

qw2008 2006-10-18 03:39:07
我现在通过VBA进行数据汇总的工作,现在碰到了一个大难题。请大家给予帮助。

我的程序是excel+access的模式,在access的数据库中有二张表,一张是收款表,一张是销售表,现要把按条件筛选的数据放到listview上面。问题来了,我不知道该如何将数据汇总。比如在listview上我有几个字段:“年,月,日,单号,摘要,销售额,回款额,余额”共8列内容。
其中从收款表上取数的有“年,月,日,单号,摘要,销售额”6列,
从回款表上取数的"年,月,日,单号,摘要,回款额"6列,现在我搞不清楚如何才能将这些数据写到listview上面。我只知道对一张表的操作,你看在两张表上均有年月日的关键字段,我怎么也想不明白该如何处理?

我试着写了
Dim rcount%, k%, i%
On Error Resume Next
sql = "SELECT ID,年,月,日,发货单号,产品名称,金额 FROM sale" & _
" WHERE (((CDate([月] & '-' & [日] & '-' & [年])) Between #" & CDate(TextBox1.Text) & "# And #" & CDate(TextBox2.Text) & "#))"
If TextBox3.Text <> "" Then sql = sql & "and 客户名称 like '%" & TextBox3.Text & "%'"
If TextBox4.Text <> "" Then sql = sql & "and 业务员 like '%" & TextBox4.Text & "%'"
sql = sql & " ORDER BY 月,日,发货单号"
RST.Open sql, CNN, adOpenKeyset, adLockOptimistic
ListView1.ListItems.Clear
Do Until RST.EOF
With ListView1.ListItems.Add(, , RST.Fields("ID"))
.SubItems(1) = RST.Fields("年")
.SubItems(2) = RST.Fields("月")
.SubItems(3) = RST.Fields("日")
.SubItems(4) = RST.Fields("发货单号")
.SubItems(6) = RST.Fields("产品名称")
.SubItems(7) = Format(RST.Fields("金额"), "#,##0.00")
RST.MoveNext
End With
With ListView1.ListItems.Add
.SubItems(6) = " 本 月 合 计"
.SubItems(7) = IIf(IsNull(xsje), "", Format(xsje, "#,##0.00"))
End With
RST.Close

可是根本没有用,请大家施以援手!谢谢!
...全文
224 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gujianda 2006-10-20
  • 打赏
  • 举报
回复
还有,我不是计算机科班出身,所以编程没有规矩,
这类事情按我的脾气,先把表中的数据全部读入数组(一个字段对应一个数组),
然后想怎么筛选就怎么筛选,呵呵,瞎说说的。
Gujianda 2006-10-20
  • 打赏
  • 举报
回复
不好意思,这两天杂事多,没空上来。
上面的一段话是我嫌打字烦,从别的地方拷贝来的。
他所说的“列”就是字段的意思。
即:查询中遇两表中相同的字段,只需在字段名前加表名区分即可。
Gujianda 2006-10-19
  • 打赏
  • 举报
回复
我猜:收款表里的日期是“收款日期”,销售表里的日期是下单或发货日起,两者没有关系。
所以看你是汇总业务员的业绩情况,还是资金回拢情况。
Gujianda 2006-10-19
  • 打赏
  • 举报
回复
嗬嗬,看样子你和我一样,对财务要求不甚了解,所以任务表述不清。
问问业务主管需要那些显示内容和怎样的显示格式,然后再来提问。
qw2008 2006-10-19
  • 打赏
  • 举报
回复
:“年,月,日,单号,摘要,销售额,回款额,余额”增加一列“客户名称”,其中从收款表上取数的有“年,月,日,单号,摘要,销售额”增加一列“客户名称”请大家看看该如何写呀?
qw2008 2006-10-19
  • 打赏
  • 举报
回复
两张表是有关联的,相同的客户名称,我现在发现业务员这个字段要不要到是无所谓的,这样我的代码及思路该如何写呀?急!
qw2008 2006-10-19
  • 打赏
  • 举报
回复
那相同字段的名称该如何处理,就是我一会儿是取销售表上的数据,一会儿是回款表上的数据,因为我最后肯定是按日期排列的!
Gujianda 2006-10-19
  • 打赏
  • 举报
回复
1,多表查询:Select tableA.a,b,c From tableA,tableB Where tableA.a=tableB.a(举例)

当两表有相同列名时,需在元素前加表名 tableA.a ...

qw2008 2006-10-19
  • 打赏
  • 举报
回复
sql = "SELECT ID,年,月,日,发货单号,产品名称,规格,数量,单位,金额 FROM sale" & _
" WHERE (((CDate([月] & '-' & [日] & '-' & [年])) Between #" & CDate(TextBox1.Text) & "# And #" & CDate(TextBox2.Text) & "#))"
sql = sql & "and 客户名称 like '%" & TextBox3.Text & "%'"
sql = sql & " ORDER BY 月,日,发货单号"
qw2008 2006-10-19
  • 打赏
  • 举报
回复
怎么样做客户明细表及应收帐款余额表?

1、客户往来明细表是指一个客户的销售回款余额明细表。是由下面几个字段构成的:年月日单号摘要借方明细(销售明细)贷方明细(回款明细)及余额。这张表是由数据库中的二个表中取数的,一张是销售表,能取到以下字段:年月日单号(发货单号)摘要及借方明细(销售明细),另一张表是回款表能取到以下字段:年月日单号(回款单号)摘要及贷方明细(回款明细)。余额则是期初余额+本期增加(销售明细)-回款明细。这是思路。

现在我搞不清楚的是我用listview,把销售表的各数都取来了,但是我不知道这时对回款明细表上的数据该怎么办?你看我已作如下操作:
With ListView1.ListItems.Add(, , RST.Fields("ID"))
.SubItems(1) = RST.Fields("年")
.SubItems(2) = RST.Fields("月")
.SubItems(3) = RST.Fields("日")
.SubItems(4) = RST.Fields("发货单号")
.SubItems(6) = RST.Fields("产品名称")
.SubItems(7) = Format(RST.Fields("金额"), "#,##0.00")
我该怎么样才能将回款数据也显示在listview?不可能再来一遍with listview吧!所以这时我的SQL语句肯定是不会这样子的,可是我也不知道该怎么子的:
fyming 2006-10-18
  • 打赏
  • 举报
回复
数据库表的这两张表要有关联字段才行

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧