Office中国论坛/Access中国论坛

标题: 紧急求助,ACCESS中有没有setall的属性? [打印本页]

作者: zshowell    时间: 2006-4-11 21:59
标题: 紧急求助,ACCESS中有没有setall的属性?
我现时要开发的程序碰到些问题,

要对不知列数和列名的情况下跟据该列的值设定界面颜色

请给予支援
作者: Benjamin_luk    时间: 2006-4-11 22:25
能说得详细点吗?或举个例子?[em09]
作者: zshowell    时间: 2006-4-11 22:45
我有一个表,这个表是由查询产生的,

而查询所产生的每个字段名称都因输入到查询中的参数变化而变化

比如

现时表为:abc

现时字段分别为布1,布2,布3,布4 ..花1,花2,花3

再做一次查询时,字段名称变为:线1,线2,线3....,钮1,钮2...

字段的多少都不定的

我要利用条件格式,根据字段的值改变对应的文本框的颜色

也就是说,我事先要产生大量的文本框,然后使用循环语句为他们指定来源和条件格式,

请问有办法做吗?
作者: zshowell    时间: 2006-4-11 22:47
如果是VFP,就可以做到,但ACCESS我就不知怎么搞出来了
作者: wwwwa    时间: 2006-4-11 22:50
access没有SET ALL属性
作者: zshowell    时间: 2006-4-11 23:06
惨,咁点算?
作者: zshowell    时间: 2006-4-11 23:10
使用什么语句让我使用for循环,一个一个的为他们设定资料?
作者: fan0217    时间: 2006-4-12 01:19
不太了解你要达成什么目标,不过请把例子放上来,也许你要达到的目标,可以有别的方法可以实现.


作者: zshowell    时间: 2006-4-12 02:40
[attach]17058[/attach]
[attach]17059[/attach]

作者: zshowell    时间: 2006-4-12 02:42
就是要达到第二个图的结果,

由于未有办法为动态的列做定义,所以第二个图我只是放了几个文本框上去以表达效果
作者: zshowell    时间: 2006-4-12 02:50
让我解析一下,由于第一个图我未有每个款输入特征字,所以全是为空

想做的就是,每款东西都列出来,如果某款某一物品到齐就是空2,显示绿色

只到了一部分就是空1,显示红色,全部都没有到就是空0,显示蓝色

这个空字,比如某款布的特征字为红布,且为这款东西要用的第一种布,那么

在布1字段这个款式上就会显示对应的红0,红1或红2其中一种状态,

其他事情我已解决,现在就剩下界面这道关,

如何动态的将每一个列与窗口的文本框进行挷定,并为这个文本框设定条件格式

能明白我的意思吗?
作者: fan0217    时间: 2006-4-12 02:55
把你的例子传上来看看,从图中没有了解到更多的信息.
作者: zshowell    时间: 2006-4-12 03:04
资料不方便上传,因为是在使用中的SQL2000中添加一览的功能



只要你能理解

有一个表,表中的字段数量是可变的,但字段的数据类型一样,只是字段名及字段数量在变化

想做一个界面出来,就是让字段值中最尾一个位的数目字分别为

0,1,2时,在界面上让这个字段的值显示相应的颜色
作者: 一点通    时间: 2006-4-12 04:29
灵活应用,用条件格式可以实现,请参考



http://www.office-cn.net/forum.php?mod=viewthread&tid=35200&replyID=&skin=1

[此贴子已经被作者于2006-4-11 20:29:45编辑过]


作者: zshowell    时间: 2006-4-12 16:45
谢谢一点通的指点

这方面,的确要用条件格式,

然后还未有解决到问题,

因为列数是可变的,

条件格式是事先点击每一个文本框之后在"条件格式"处设定,

代码不在表单中,而是在系统文件上,不知道有没有高手分析过

"条件格式"在系统表中的什么位置?

我查看系统表的二进制文件均不能打看查开内容,只能停步于此

另外,关于动态生成文本框控件的问题,可以在编辑窗体的状态下实现

VBA代码是 CreateControl()来做,但最好不用在编辑状态下,能否在

窗体激活后做这种添加的行为?VFP可以这样做的
作者: zshowell    时间: 2006-4-12 17:44
摘要:在MicrosoftAccess中使用用户接口及通过编程创建条件格式。探讨在不同环境下扩展条件格式的编程方法。

正文:

FrankC.Rice著<B >朱亦文译
Microsoft公司

应用于:Microsoft(r)Access2000及以后版本

摘要:在MicrosoftAccess中使用用户接口及通过编程创建条件格式。探讨在不同环境下扩展条件格式的编程方法。

简介
自Microsoft(r)Access2000开始,能够在combobox和textbox控件上应用条件格式。这将允许按指定的条件改变包括在这些控件中的数据的原始显示特性,如背景色和加粗。

有两个方法创建和应用条件格式。其一,可以先选择控件,然后在[格式]菜单上点击[条件格式]。其二,使用MicrosoftVisualBasic(r)forApplications(VBA),也能创建使用条件格式的[FormatCondition]对象实例并把它们加入到[FormatCondition]对象集合中。

每个做<B >了条件格式的控件最少有两个格式--一个默认格式和一个当指定条件为True时的指定格式。一个控件可以有多至三个的指定格式条件。这三个条件的限制可由VBA代码编程在不同的环境下确定条件的值来克服。本文第一个示例将通过用户界面来创建条件格式。我们将会看到在运行时使用VBA代码来创建条件格式改变格式条件这种更好的方法。

通过用户界面创建条件格式
在<格式>菜单上的<条件格式>菜单提供一个简单的方法创建和应用多至三个条件格式。当点击<格式>菜单上的<条件格式>,将出现<条件格式>对话框,如图:

<IMG>













图1.<条件格式>对话框



<默认格式DefaultFormatting>区域显示控件在没有使用任何指定条件的情况下的格式。<条件1Condition1>区域允许添加指定的条件格式。当要添加条件格式时,点击[添加Add]按钮,对话框将最多扩展至三个条件格式。

<条件格式>对话框提供六个格式控件来帮助指定每一个条件格式。从控件行的最左侧开始,有加粗、斜体、下划线、背景色以及前景色,最后一个是控件控件的启用状态(允许和禁止)。在最左边的下拉列表框允许选择<字段值为>、<表达式为>或者<字段有焦点>。也能通常操作符如:相等(=)、大于(>)、位于区间(Between)及更多。如果在一个计算字段上应用条件格式,必须使用标准的VBA操作符书写表达式。

如果格式化条件要求一个表达式,可以使用表达式生成器来帮你建立表达式。

图2举例说明在一个窗体中使用条件格式格式化与之相关的SpecialCustomer文本框。

<IMG>

















图2.显示通过用户接界面创建的格式化<B >了的窗体



基于Total文本框的值作为格式化条件改变背景色。在该情形中,如果Total文本框的计算值介于300到399之间,文本框显示为绿色。图3举例说明在<条件格式>对话框中定义条件。

<IMG>





















图3.基于Total文本框值定置的格式化对话框



条件格式编程
当能够非常熟练的使用<条件格式>对话框创建条件格式后,在这个时期,可能想使用VBA代码<B >了。通过使用代码创建条件格式,能管理条件格式,用户就会发现可以超过允许的三个条件格式。也可能想在多个应用程序或多个窗体中使用条件格式。在代码中产生条件,非常易于在不同的窗体中使用复制粘贴代码应用同样的格式。

窗体上的每个组合框和文本框有一个包含<FORMATCONDITION>对象的<FORMATCONDITIONS>对象集合。该<FORMATCONDITIONS>对象集合有<ADD>(添加)和<DELETE>(删除)方法。<FORMATCONDITION>对象有<MODIFY>(修改)方法。<FORMATCONDITION>对象没有名称属性,因此通常通过其索引值进行引用。另外,<FORMATCONDITION>对象拥有诸如<TYPE>(类型)属性的属性设置,允许应用基于字段值或表达式的条件。有关于<FORMATCONDITIONS>对象集合和<FORMATCONDITION>对象的更详细的信息,请参看Micosoft开发者网络的帮助。

来看看另一个定置窗体及在其背后的代码,是如何通过编程来创建条件格式及如何提供附加格式选择。图4显示一个文本框中根据靶号确定格式的窗体。

<IMG>

















图4.基于用户选项应用条件格式的窗体



在这个窗体中,用户在Target文本框中键入数字,并在Chooseanoption区域选择一选项(Option)。用户然后在Result文本框中键入数字并点击[Change]按钮。对于前面三选项,Result文本框的值与Target文本框的值进行比较,并根据两个值是否是少于、等于、或大于另一个,格式化Result文本框的值。对于第四个选项,当点击[Change]按钮后,则按当前日期的星期与字符串Sa
作者: zshowell    时间: 2006-4-12 17:47
上边是通过百度的缓存中挖回来的一份十分珍贵的译文,

我想可能会有好多朋友都很希望了解这一方面

所以我转贴出来,是朱总的东西哟,

如果不适合在此张贴,请版主帮助删除,谢谢朱总!
作者: zshowell    时间: 2006-4-12 19:20
遇到一个问题,求教高手:


想用一个变量表示控件的名称, 如窗体Sample上有一个控件ACT1,ACT1的名称想用变量Temps代替:

Dim TempS as string

TempS="ACT1"

Forms!Sample!TempS="Question1"

但是不能运行,

求高手指点,多谢!


Forms!Sample(TempS)="Question1"

这个是遍历文本框的,您可以改一下


    Dim ctl As Control


    For Each ctl In Me.Controls


        If ctl.ControlType = actextBox Then


            ctl.Value = Null

       End If


    Next


Sub Print_Field_Names()   
Dim rst As Recordset, intI As Integer   
Dim fld As Field   
Set rst = Me.RecordsetClone   
For Each fld in rst.Fields        ' 打印字段名称        
Debug.Print fld.Name   
NextEnd Sub
作者: zshowell    时间: 2006-4-12 19:23
基本上可以写出来了,看样子只好一口气加几百个广西框了,

谢谢高手们的帮助
作者: zshowell    时间: 2006-4-13 00:09
OK!做好了!

[attach]17070[/attach]
问题还是有的,就是使用250个文本框的条件格式,显示时有点慢,比较快的机器大约要20秒才能显示出结果






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