设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[窗体] 判断一个窗体里面多个文本框是否相同,不同的文本框里面字体变颜色,怎么操作?

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2016-1-19 11:55:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hshzhq 于 2016-1-19 13:11 编辑

如图,我制作一个窗口左边是普通文本,右边是和某个表对应的,窗口加载时左边等于右边,现在我想修改左边来更新右边,为了防止不知道修改的是左边的哪一个值,我希望只要左边的修改了,颜色就改变,但是如果又改回去,颜色就回复原样,所以思路就是检测左边和右边是否相同,不同的话就改变左边的颜色,左边可有命名为A1、A2、A3、A4等,右边B1、B2、B3、B4等。
要求:1、默认自动检测(非按按钮情况下才执行)A1=B1,A2=B2,A3=B3......,如果出现不相同的,那么A列对于的文本框中的文字就变成红色(随便变个颜色都可以,只要出现变化)。
           2、验证所有A1=B1,A2=B2,A3=B3......是还是否,例如使用if..then语句,那么只需要中间....内容就可以,then后面不需要填写。

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2016-1-19 12:12:57 | 只看该作者
最好是有附件,方便别人帮你。

点击这里给我发消息

3#
 楼主| 发表于 2016-1-19 13:12:41 | 只看该作者
access新新新手 发表于 2016-1-19 12:12
最好是有附件,方便别人帮你。

已经添加了,不过是个类似的access文件。
4#
发表于 2016-1-19 13:51:17 | 只看该作者
hshzhq 发表于 2016-1-19 13:12
已经添加了,不过是个类似的access文件。

Private Sub A1_AfterUpdate()
    Me.B1.ForeColor = vbBlack
    If Nz(Me.A1.Value) <> Nz(Me.B1.Value) Then
        Me.B1.ForeColor = vbRed
    End If
End Sub
5#
发表于 2016-1-19 13:51:39 | 只看该作者
脱裤子放屁,多此一举。

直接用一组非绑定控件完成即可。加载时用Dlookup将数据记录读入到各控件中,在每个控件的更新后事件中比较修改值与数据表的数据是否一致,不一致则将前景色或背景色设置为某个提醒色,否则为默认色。
6#
发表于 2016-1-19 14:06:26 | 只看该作者
条件格式
修改完之后才能变色(加载、打开或者编辑时不会变色)。

本帖子中包含更多资源

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

x
7#
发表于 2016-1-19 16:43:26 | 只看该作者
roych 发表于 2016-1-19 14:06
条件格式
修改完之后才能变色(加载、打开或者编辑时不会变色)。

又学到一招,条件格式

点击这里给我发消息

8#
 楼主| 发表于 2016-1-19 22:18:03 | 只看该作者
我的按钮里面有两个,一个是确认,一个是取消。这个文字或者背景变色有个问题,就是出现过一次操作之后,关闭窗口后再重新打开,变色的还是变色的,并不是默认加载的时候都是黑白状态。所以既然变了色就必须变回去。我有三部分代码。
  1. Private Sub cmd_取消修改_Click()
  2. Text118 = 销售日期
  3. Combo132 = 代理人
  4. Combo138 = 收货人
  5. Combo144 = 经办人
  6. Combo150 = 销售类型
  7. Combo156 = 快递
  8. Text162 = 快递单号
  9. Text118.ForeColor = 0
  10. Combo132.ForeColor = 0
  11. Combo138.ForeColor = 0
  12. Combo144.ForeColor = 0
  13. Combo150.ForeColor = 0
  14. Combo156.ForeColor = 0
  15. Text162.ForeColor = 0
  16. End Sub
复制代码

上面是取消修改就会回复到原来的文字内容和颜色

  1. Private Sub Form_Load()
  2. Text118 = 销售日期
  3. Combo132 = 代理人
  4. Combo138 = 收货人
  5. Combo144 = 经办人
  6. Combo150 = 销售类型
  7. Combo156 = 快递
  8. Text162 = 快递单号
  9. Text118.ForeColor = 0
  10. Combo132.ForeColor = 0
  11. Combo138.ForeColor = 0
  12. Combo144.ForeColor = 0
  13. Combo150.ForeColor = 0
  14. Combo156.ForeColor = 0
  15. Text162.ForeColor = 0
  16. End Sub
复制代码

上面是指打开窗口加载时,所有的文字都是默认值,而且颜色都是默认的黑色,这样就不会出现下次打开时还是上次修改后的颜色。

  1. Private Sub Text118_AfterUpdate()
  2. If Text118.Value <> 销售日期.Value Then
  3. Text118.ForeColor = 125
  4. Else: Text118.ForeColor = 0
  5. End If
  6. End Sub
复制代码

上面的代码就是表示该文本框文字变色的办法,文字修改变色容易,但是文字修改了就变色,再修改回去又不变色就很麻烦,所有我的销售日期相当于是个原始值,我只是修改Text118文本框的值后,所以使用AfterUpdate,如果修改指后判断是否与默认值不同来变色,所以不算完全意义上的修改就变色,这整个功能用在修改记录的时候防止自己不知道修改的是哪一个内容,所以前景色变色,一看就知道是自己修改过的。当然这里的ForeColor可以改成其他什么颜色都可以。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-11 05:55 , Processed in 0.180859 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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