设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[查询] 谁有VBA学习资料,给咱发一份.

[复制链接]
跳转到指定楼层
1#
发表于 2011-3-8 21:56:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 wangxy689 于 2011-5-11 23:05 编辑

谁有VBA学习资料,给咱发一份.
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
2#
发表于 2011-3-9 00:37:23 | 只看该作者
本帖最后由 roych 于 2011-3-9 01:03 编辑

俺的想法是,先随机抽取5项20%的数据,再据此做联合查询,从而得到每项均20%的数据……

或许子查询也是个不错的想法吧,不过暂没时间去想。不知道老汉版主有没有更高明的办法,人家可是指定您来回答的了,别让LZ失望噢。

PS:
好像理解错题意了。这里只是对5项分别取各抽样20%,不一定每个工号都是平均的(如果非要这么细化,LZ不如用Excel处理,按工号排序后用数据透视表试试看?) ,再说了,某些员工只有一项,怎么可能都有20%呢?(*^__^*) 嘻嘻……

本帖子中包含更多资源

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

x
3#
发表于 2011-3-9 08:21:53 | 只看该作者
wangxy689 发表于 2011-3-8 21:56
我这个问题是一个单位有20多个人对应各自的受理工号,公司的受理类型有5种(退货型、换货型、维修保养型、维 ...




本帖子中包含更多资源

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

x
4#
发表于 2011-3-9 08:30:56 | 只看该作者
roych 发表于 2011-3-9 00:37
俺的想法是,先随机抽取5项20%的数据,再据此做联合查询,从而得到每项均20%的数据……

或许子查询也是个 ...

Sub 抽样查询()
Dim ssql As String
Dim n As Long
Dim i As Long
Dim j As Long
Dim str As String
Dim strwh As String
If IsNull(Me.年度.Value) = False And IsNull(Me.月度.Value) = False And IsNull(Me.抽样比率.Value) = False Then
    ssql = "DELETE * from 临时表"
    CurrentDb.Execute ssql
    str = "ID, 流水序列号, 产品单号, 客户姓名, 预估金额, 给付方式, 受理类型, 受理员工号, 申请时间"
    For i = 0 To Me.受理类型.ListCount - 1
        For j = 0 To Me.受理员工号.ListCount - 1
            strwh = "year(申请时间)=" & Me.年度.Value
            strwh = strwh & " and month(申请时间)=" & Me.月度.Value
            strwh = strwh & " and 受理类型='" & Me.受理类型.Column(0, i) & "'"
            strwh = strwh & " and 受理员工号='" & Me.受理员工号.Column(0, j) & "'"
            n = Round(DCount("*", "日常数据", strwh) * Me.抽样比率.Value, 0)
            If n > 0 Then
                ssql = "INSERT INTO 临时表 ( " & str & " ) "
                ssql = ssql & "SELECT TOP " & n & " " & str
                ssql = ssql & " FROM 日常数据 "
                ssql = ssql & "WHERE " & strwh
                ssql = ssql & " ORDER BY Rnd([ID])"
                CurrentDb.Execute ssql
            End If
        Next
    Next
Else
    MsgBox "请选择抽样查询年度、月度、抽样比率!"
End If
End Sub

如果对数量极少的抽样样本,可以考虑将n设置为如下:

n = Int(DCount("*", "日常数据", strwh) * Me.抽样比率.Value) - (DCount("*", "日常数据", strwh) * Me.抽样比率.Value - Int(DCount("*", "日常数据", strwh) * Me.抽样比率.Value) > 0)


这样可以保证最少抽到一条记录。
5#
发表于 2011-3-9 09:18:30 | 只看该作者
回复 todaynew 的帖子

子查询试了一下,感觉运行较慢。看来除了编程,貌似没有更好的办法了。
6#
 楼主| 发表于 2011-3-9 18:58:22 | 只看该作者
太感谢了,让我困惑了好久的问题终于解决了,我一定要在论坛上好好跟老师学,谢谢了。
7#
 楼主| 发表于 2011-3-10 21:13:34 | 只看该作者
本帖最后由 wangxy689 于 2011-3-10 21:18 编辑

今天我在老师做的窗体上增加了两个按钮,其中一个按钮时导出EXCEL表格,我是用宏做的 OutputTo,出现的问题是虽然导出了EXCEL表格,但是不是子窗体上的记录,是全部记录。老师帮我看看是什么原因,请教教我把。

本帖子中包含更多资源

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

x
8#
发表于 2011-3-11 09:03:21 | 只看该作者
用了个红尘的通用导出函数

本帖子中包含更多资源

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

x
9#
发表于 2011-3-11 09:32:00 | 只看该作者
本帖最后由 todaynew 于 2011-3-11 09:34 编辑
wangxy689 发表于 2011-3-10 21:13
今天我在老师做的窗体上增加了两个按钮,其中一个按钮时导出EXCEL表格,我是用宏做的 OutputTo,出现的问题是 ...


有十多种处理类似问题的方法。
最简单的可以看看红尘如烟关于用查询导入导出的方法。地址:http://www.office-cn.net/forum-viewthread-tid-93430-highlight-%D2%BB%BE%E4%B2%E9%D1%AF%B4%FA%C2%EB%CA%B5%CF%D6Excel%CA%FD%BE%DD%B5%BC%C8%EB%B5%BC%B3%F6.html
10#
发表于 2011-3-11 09:41:01 | 只看该作者
老头真是精神好啊!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 19:28 , Processed in 0.084297 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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