关于ACCESS窗体设计问题,制作问题列表框!

我想制作一个窗体,分成两部分,左右分开,左边是问题的分类(列表框),右边是问题的详细信息和解决方法,当我点击列表框的上的行的时候,右边的会对应更新问题详细信息,我想知道怎... 我想制作一个窗体,分成两部分,左右分开,左边是问题的分类(列表框),右边是问题的详细信息和解决方法,当我点击列表框的上的行的时候,右边的会对应更新问题详细信息,我想知道怎样做,谢谢! 展开
 我来答
tjrmgs
2011-02-24 · TA获得超过5765个赞
知道大有可为答主
回答量:2161
采纳率:94%
帮助的人:1039万
展开全部
我现在没空,请允许我晚些时候给你一个详细而满意的答复,今晚或明晚。
现在给你答复
这里根据你的要求,列举一个实际解决方案加以说明,以方便你理解我是如何实现你的要求的。

第一步 首先建立一张ACCESS表(注:表名和字段名一般应使用英文,但是为了便于理解下面采用中文)
该表取名“问题信息”共有3个字段名分别为“分类”、“问题详情”和“解决方法”并输入下列模拟数据:
分类 问题详情 解决方法
人事 人事问题1 人事问题1之解决方法
人事 人事问题2 人事问题2之解决方法
人事 人事问题3 人事问题3之解决方法
生产 生产问题1 生产问题1之解决方法
生产 生产问题2 生产问题2之解决方法
技术 技术问题1 技术问题1之解决方法
技术 技术问题2 技术问题2之解决方法
技术 技术问题3 技术问题3之解决方法
营销 营销问题1 营销问题1之解决方法
营销 营销问题2 营销问题2之解决方法
技术 技术问题4 技术问题4之解决方法
财务 财务问题1 财务问题1之解决方法
公关 公关问题1 公关问题1只解决方法

第二步 新建一个ACCESS窗体,调整大小约14CM见方,然后添加两个列表框控件,一个用来在左边显示分类,另一个用来在右边显示问题详情和解决办法,假设它们的名称分别为:List1和List2 。在添加列表框控件时系统会自动为其添加列表框标签,请手动将它们删除掉。这两个列表框的各种属性可以手工设置,但是讲解起来过于繁复,故放弃手工设置改用编程方法设置,请看下一步。

第三步 为刚新建的窗体添加打开事件过程(用编程方法设置各控件的关键初始属性)

Private Sub Form_Open(Cancel As Integer)
'设置列表框LIST1关键属性
With Me.List1
.Left = 567 '设置左边距 单位为缇 1CM=567缇
.Top = 567 '设置上边距
.Width = 1701 '设置列表框宽度
.Height = 3402 '设置列表框高度
.BoundColumn = 1 '设置列表框绑定第一列
.ColumnHeads = True '设置列表框列显示标题
'下一代码行设置列表框行来源,以便List1显示问题分类
'其行来源为一段的SQL代码,从问题信息表中查询出“问题分类”这里使用DISTINCT
'关键字剔除重复值
.RowSource = "SELECT DISTINCT 分类 AS 问题分类 FROM 问题信息 ORDER BY 分类"
End With
'设置列表框list2关键属性
With Me.List2
.Left = 2318
.Top = 567
.Width = 4536
.Height = 3402
.ColumnHeads = True
.ColumnCount = 2 '设置列表框list2显示两列
.ColumnWidths = "3.6 cm;4.4 cm" '设置列表框第一列宽度为3.6厘米,第二列宽度为4.4厘米
End With
End Sub
注:如果你晓得如何人工设置上述关键属性,则可免去上述窗体打开事件过程

为列表框LIST1添加已更新事件过程(此段代码为戏肉)实现“当我点击列表框的上的行的时候,右边的会对应更新问题详细信息”
Private Sub List1_AfterUpdate()
'下一代码行设置列表框LIST2行来源,让List2显示问题详情和解决方法
'其行来源为一段SQL代码,从问题信息表根据List1每次选定的“分类”
'查询出相关的“问题详情”和“解决方法”
Me.List2.RowSource = "SELECT 问题详情,解决方法 FROM 问题信息 WHERE 分类='" & Me.List1.Value & "'"
End Sub
请上机试试上列解决方案,看看效果吧。
来自:求助得到的回答
羽扇子君
2011-02-23 · TA获得超过935个赞
知道小有建树答主
回答量:294
采纳率:0%
帮助的人:392万
展开全部
其实很简单.主要步骤如下:
1、建立(或已存在)一个关于问题分类的表([问题分类表]),格式应该是:
ID(自动编号),问题分类(文本)
2、建立(或已存在)一个关于问题和详细信息的基础表,格式应该是:
ID(自动编号)、分类ID(数字→长整型 对应[问题分类表].[ID]) 、问题明细(文本)、解决方法(文本)……(还需要什么自己增加)
3、建立那个你想要的窗体界面,其中创建一个列表框(List分类),在右侧创建一个文本框(Text内容);
4、在 List分类 的属性表的“数据”选项卡中,“行来源类型”属性,默认为“表/查询”(保持不变);
找到“行来源”属性,点击右侧的下拉菜单,选择“问题分类表”,之后,切换到属性表的“格式”选项卡中,在“列数”属性中,写入 “2”,表示〔ID〕和〔问题分类〕都使用;
在“列宽”属性中,写入“0,3”,意思是〔iD〕列不显示。只显示〔问题分类〕;
5、切换到属性表的“事件”选项卡中,在“更新后”属性中,选择“事件过程”并点击 右侧的生成器(…)按钮,切换到VBA编辑器中,将下列代表粘到事件中:
Me.Text内容 = DLookup("问题明细", "问题明细表", "分类ID=" & Me.List分类)
6、切换到 窗体视图 看效果.(要在2个表中输入一切资料)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
405675672
2011-02-23 · TA获得超过2620个赞
知道小有建树答主
回答量:1105
采纳率:0%
帮助的人:1095万
展开全部
设窗体窗体(ct),数据源为jscl表,建两个组合框:
组合框1:名称为clmc (其值是jscl表中的clmc) 可用行来源:SELECT [clmc].[jscl] FROM [jscl]
组合框2:名称为ctcz (其值是jscl表中的clcz) 可用行来源:SELECT distinct clcz.jscl FROM jscl WHERE (([jscl]![clmc]=[Forms]![ct]![ctmc]))
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Einstiphen
2011-02-23 · TA获得超过811个赞
知道小有建树答主
回答量:179
采纳率:0%
帮助的人:61.3万
展开全部
窗体中新建1个列表框、1个文本框,一个叫L问题分类,一个叫T解决方法,其它什么都不用做。然后窗体代码如下即可实现你的要求:
Private Sub Form_Open(Cancel As Integer)
Dim sql As String
sql = "select 问题分类 from 问题表"
Me.L问题分类.RowSource = sql
End Sub

Private Sub L问题分类_AfterUpdate()
Dim db As Database
Dim rst1 As Recordset
Dim sqlrst1 As String
Dim qst, ans As String
Set db = CurrentDb
qst = Me.L问题分类.Value
sqlrst1 = "select 解决方法 from 问题表 where 问题分类 = '" & qst & "'"
Set rst1 = db.OpenRecordset(sqlrst1)
ans = rst1(0)
Me.T解决方法.Value = ans
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lvoda38
2011-02-23 · 超过14用户采纳过TA的回答
知道答主
回答量:48
采纳率:0%
帮助的人:0
展开全部
库,得到连接对象conn
2、用下面的select语句打开表,将数据读入RecordSet
set rs=conn.execute("select * from 表名")
3、用循环将数据读入二维数组arr
row=0
while not rs.eof
arr[row,0]=rs["id"]
arr[row,1]=rs["year"]
arr[row,2]=rs["mon"]
arr[row,3]=rs["1"]
arr[row,4]=rs["2"]
...
...
...
row=row+1
wend
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式