Office中国论坛/Access中国论坛

标题: 【求助】怎样用一个字段值来控制某控件能否显示或能否使用? [打印本页]

作者: gargoyle    时间: 2009-1-4 15:13
标题: 【求助】怎样用一个字段值来控制某控件能否显示或能否使用?
比如公司表中有公司属性字段,如果该字段为“用户”,则某控件可见或可选,否则不然。
实现这个效果必须VBA编程么?

多谢!
作者: Henry D. Sy    时间: 2009-1-4 16:09
用if then 语句和visible属性
作者: gargoyle    时间: 2009-1-4 16:20
谢谢你,这个是不是VBA实现了?

我能不能在受控控件的属性界面中对"可见性"一项进行什么操作或者写什么代码来实现呢?
作者: Henry D. Sy    时间: 2009-1-4 16:23
在属性里设置是静态的
而你所需要的是动态的,只能用vba来实现。
作者: gargoyle    时间: 2009-1-4 16:54
谢谢,
哪位有完整的代码示例实现这个功能?
作者: Henry D. Sy    时间: 2009-1-4 17:23
例子应该是你来传,谁呀不知道你的例子到底是怎样的。
作者: gargoyle    时间: 2009-1-4 17:45
呵呵
等着啊,我得把我的东西简化一下,因为还涉及好多其它的问题
作者: gargoyle    时间: 2009-1-4 20:40
这是一个简化的东东:

这里面其实要实现几个个功能(原谅我贪心了):

1)“公司”窗体
只有当标签页1(“公司信息”)中字段“公司属性”为“用户”时,第二个标签页“相关信息”中第二行的控件和按钮才可见或者可用(不可用时为灰色)。

2)“项目”窗体
第二页“相关信息”,比如第一行,一旦已经选定了“制造商”比如说A公司,左键单击后面的“制造商联系人”框,点击右下角的“浏览”按钮,会弹出一多选界面将A公司的所有联系人姓名列出,被选中的联系人组合为一组合框列表置于“制造商联系人”框中,选中任何一个联系人,点击右下角第二个按钮“查找/编辑 /新建”将会弹出“联系人”窗体显示相应的联系人信息。鼠标单击任何一个字段框,再点击“查找/编辑/新建”按钮都会弹出相应的“公司”或“联系人”窗口以显示前面文本框/组合框中选中对象的相关信息。感觉像是窗体-查询-窗体,级联地传递参数。这个感觉很复杂,但是活又急。。。

另外还有一个疑惑,就是在“关系”视图中,其实“公司”表只要在该公司的“公司属性”为“用户”时,才与“项目”表具有一对多关系,如果是“制造商”或“ 代理商”等其它属性,只在“项目”表中的相应字段中存有其“公司”表主键以备查询,但在“项目”窗体第二页中是通过“公司名称”和“属性”在公司表里查询的,只不过返回公司表主键值。
“联系人”信息也是如此。
所以这里不知道怎样设定联接关系好,是表联接还是查询联接好呢?
作者: Henry D. Sy    时间: 2009-1-4 21:24
问题一
Private Sub Form_Current()
    SetEnb
End Sub
Private Sub 公司属性_AfterUpdate()
    SetEnb
End Sub
Sub SetEnb()
    If Me.公司属性 = "用户" Then
        Me.Text9.Enabled = True
        Me.Command15.Enabled = True
    Else
        Me.Text9.Enabled = False
        Me.Command15.Enabled = False
    End If
End Sub
作者: Henry D. Sy    时间: 2009-1-4 21:27
问题二
利用组合框会方便的多

附件中应该留下数据作为测试用。
作者: friendship    时间: 2009-1-5 02:32
呵呵,楼主的问题多发帖子哟,楼上的方法不错。值得我们学习
作者: gargoyle    时间: 2009-1-5 14:01
谢谢版大!
我新上传了个带测试数据的。
以“项目”窗体为例
对问题2,我想实现的效果是:

在第二个标签页“相关信息”上,比如单击“代理商”后面的组合框,显示了“公司”表中“公司属性”为“代理”的公司名称的公司列表(这个似乎比较简单,就是个查询),然后在下面“代理商联系人”右侧组合框内单击,之后点击标签页控件下方的“浏览”按钮,该组合框右侧会出现(变为可见)一个列表框,里面按姓名列出所有前面选定的代理商的联系人,选择其中参与该项目的若干联系人后,有个确认/取消动作,确认后被选出的这几个联系人姓名就会构成左边“代理商联系人”组合框中的选项(仍然显示姓名),选中其中任何一个联系人,点击下方的“查看/编辑/新建”按钮,会打开“联系人”窗体,其中显示的数据就是之前选择的那个联系人的。

标签页控件下方的“浏览”和“查看/编辑/新建”按钮对上面的“制造商”和“制造商”联系人以及第一个标签页上的“用户联系人”可完成同样的动作,如果其它标签页有类似公司-联系人数据组合,均可用这下面的2个按钮来完成与前述同样的功能。

[ 本帖最后由 Henry D. Sy 于 2009-1-5 16:50 编辑 ]
作者: gargoyle    时间: 2009-1-5 14:13
两个文件一样,我用的是FireFox+ie引擎,似乎无法正常显示“删除”按钮
作者: Henry D. Sy    时间: 2009-1-5 16:54
怎么搞得怎么复杂,再说也看不懂你再说什么
作者: gargoyle    时间: 2009-1-5 18:17
。。。
我先换另一个简单明了的问题。。。

“联系人”窗体中第一页“联系人信息”第二行,“Company”,这里想实现的是对于已存在的联系人,打开窗体后在这个“Company”里显示“联系人”所属公司的“公司名称”字段内容(“联系人”表与“公司表”以建立多对一关系)。似乎像是从当前窗体中的表记录中取得联接字段传递给一个查询,然后将结果返回给这窗体中的一个控件显示,但不知到应该怎样做?




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3