设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 10998|回复: 7
打印 上一主题 下一主题

[窗体] VBA代码设置组合框的行来源类型、列数、列宽等值,并添加列表值

[复制链接]
跳转到指定楼层
1#
发表于 2011-6-10 21:42:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一、先决条件是:组合框的行来源类型必需设置为“值列表”
二、创建表[tblName],字段列表如下:
file:///C:/Documents%20and%20Settings/caoguangyao/Application%20Data/Tencent/QQ/Temp/RichOle/I1LE8DMQ7MXH%7BH0P$_%25JN%60U.jpg
三、创建窗体[窗体1],添加一个组合框[Combo1],添加一个子窗体[Child0]
1。窗体加载事件
Private Sub Form_Load()
Me.Child0.SourceObject = "table.tblName"
End Sub
2。组合框[Combo1]获得焦点事件
Private Sub Combo1_GotFocus()
Dim i As Long
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.Open "select [DepartmentID],[Department] from tblName GROUP BY DepartmentID, Department", CurrentProject.Connection, 3, 3
Me.Combo1.RowSourceType = "值列表" '设置行来源类型
If Me.Combo1.ListCount > 0 Then '先删除,方便后继添加
    For i = Me.Combo1.ListCount - 1 To 0 Step -1
        Me.Combo1.RemoveItem i
    Next
End If
With Me.Combo1
    .ColumnCount = 2 '设置列数为了2
    .Width = 4 * 567 '组合框的宽度为4cm,567为1cm=567缇(像素单位)
    .ColumnWidths = "0CM,4CM" '第一列宽0cm,第二列宽2cm
    If .ColumnHeads = True Then '设置列标题
        .AddItem "部门ID,部门"
    End If
    .AddItem "无,无"
    rs.MoveFirst
    For i = 0 To rs.RecordCount - 1
        .AddItem rs("DepartmentID") & ", " & rs("Department")'添加记录集到组合框
    rs.MoveNext
    Next
    .AddItem "全部,全部"
    .DefaultValue = "全部"
End With
End Sub
3。组合框的更新后事件
Private Sub Combo1_AfterUpdate()
If Me.Combo1.Column(1) = "无" Then
    Me.Child0.Form.RecordSource = ""
ElseIf Me.Combo1.Column(1) = "全部" Then
    Me.Child0.Form.RecordSource = "select * from tblName"
Else
    Me.Child0.Form.RecordSource = "select * from tblName where [Department]='" & Me.Combo1.Column(1) & "'"
End If
Me.Child0.Requery
End Sub


本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2011-6-10 21:56:15 | 只看该作者
太复杂了

提示:ADO的记录集有一个GetString方法,可以方便的获取值列表,可大大简化你的代码。
3#
 楼主| 发表于 2011-6-10 22:02:39 | 只看该作者
谢谢指导

点击这里给我发消息

4#
发表于 2011-6-10 22:04:57 | 只看该作者
caoguangyao 发表于 2011-6-10 22:02
谢谢指导

呵呵,主要是阐述得比较清楚,看起来方便。
5#
发表于 2011-6-11 10:02:26 | 只看该作者
这个有价值,我正好需要,感谢分享!

点击这里给我发消息

6#
发表于 2011-6-11 12:13:15 | 只看该作者
谢谢分享!
7#
发表于 2011-6-13 11:48:07 | 只看该作者
这个有价值 ,值得好好学习。
8#
发表于 2011-6-13 22:07:45 | 只看该作者
不错
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-9 09:01 , Processed in 0.122403 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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