设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 1957|回复: 11
打印 上一主题 下一主题

[与其它组件] 能不能把两个文本框的内容对应起来?

[复制链接]
跳转到指定楼层
1#
发表于 2005-10-13 19:51:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我分别想把区名和号码(只允许6位)的前两位对应起来

区别      号码

中区      01XXXX

东区      02XXXX

南区      03XXXX

西区      04XXXX

北区      05XXXX

我希望在选择了地区的时候号码的前两位就自动填上,该如何实现?

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2005-10-13 22:25:00 | 只看该作者
可以在[区别]文体框的更新事件中写入下面代码,本代码默认值为0001,有号码时自动递增

Private Sub 区别_BeforeUpdate(Cancel As Integer)



If IsNull(DLookup("[号码]", "区别表", "[区别]=" & "'" & 区别 & "'")) Then '查询表中是否有该区别有号码

'没有时增加一个区别号+号码

    If Me.区别 = "中区" Then

       Me.号码 = "010001"

    ElseIf Me.区别 = "东区" Then

        Me.号码 = "020001"

    ElseIf Me.区别 = "南区" Then

        Me.号码 = "030001"

    ElseIf Me.区别 = "西区" Then

        Me.号码 = "040001"

    ElseIf Me.区别 = "北区" Then

        Me.号码 = "050001"

    Else  '如果不在区别范围内发出提示

        MsgBox "输入的区别有误,请重输入", , "系统提示"

    End If

Else  '如果表中有该区别,在原号码基础上+1

   Me.号码 = DMax("[号码]", "区别表", "[区别]=" & "'" & 区别 & "'") + 1

End If



End Sub



[此贴子已经被作者于2005-10-13 14:31:16编辑过]

3#
 楼主| 发表于 2005-10-13 23:31:00 | 只看该作者
可是,这些号码不是连续的能不能让号码只显示前两位或者光标停在第三位数的地方?
4#
发表于 2005-10-14 02:52:00 | 只看该作者
以下是引用wuhanshayo在2005-10-13 11:51:00的发言:

我分别想把区名和号码(只允许6位)的前两位对应起来

区别      号码

中区      01XXXX

东区      02XXXX

南区      03XXXX

西区      04XXXX

北区      05XXXX

我希望在选择了地区的时候号码的前两位就自动填上,该如何实现?



select case 区名

          CASE 中区

                号码="01"

          CASE 东区

           。。。。

end select

不过有另外一个办法,将区名控件改为值列表,2列数据,第一列宽度为0,然后添加值:01;中区;02;东区......;然后在区名的更新事件中加入代码 me.号码=me.区名

[此贴子已经被作者于2005-10-13 18:56:40编辑过]

5#
发表于 2005-10-14 03:13:00 | 只看该作者
用二列解决这个问题比较,其中一列为自动编号(表属性中:格式为0000)一列为号码,在区别控件的更新后事件中这样写:If Me.区别 = "中区" Then

            Me.号码 = "01"&me.自动编号

       end if

       If Me.区别 = "东区" Then

            Me.号码 = "02"&me.自动编号

       end if

       If Me.区别 = "南区" Then

            Me.号码 = "03"&me.自动编号

       end if

       If Me.区别 = "西区" Then

            Me.号码 = "04"&me.自动编号

       end if

       If Me.区别 = "北区" Then

            Me.号码 = "05"&me.自动编号

       end if我想你的区别应是组合框并且是限于列表。这样不知是不是一个好的解决方法????

6#
发表于 2005-10-14 03:15:00 | 只看该作者
自动编号可以设为从0001开始计数的,想必你知道:)
7#
发表于 2005-10-14 08:37:00 | 只看该作者
以下是引用wuhanshayo在2005-10-13 15:31:00的发言:



可是,这些号码不是连续的

能不能让号码只显示前两位

或者光标停在第三位数的地方?



可以的
8#
 楼主| 发表于 2005-10-14 18:53:00 | 只看该作者
to eyewitnes:

方法1,不知道为什么,什么也不运行?……

方法2,添加了01;中区;02;东区.....后,更新事件中加入代码 me.号码=me.区名,运行,号码和区名一样显示为中文,如何能使号码显示为区名的第一列?

to zyz218

您说:其中一列为自动编号(表属性中:格式为0000)一列为号码,

这个能设置列的标题的吗?这“自动编号”怎么跑出来的?

能不能再说明白点,或者给个案例我看看?……

谢谢了!

[此贴子已经被作者于2005-10-14 10:55:19编辑过]

9#
 楼主| 发表于 2005-10-14 19:04:00 | 只看该作者
以下是引用一点通在2005-10-14 0:37:00的发言:





可以的

如何能做到把光标停在第三位????

[此贴子已经被作者于2005-10-14 11:05:05编辑过]

10#
发表于 2005-10-14 19:45:00 | 只看该作者
以下是引用wuhanshayo在2005-10-14 10:53:00的发言:



to eyewitnes:

方法1,不知道为什么,什么也不运行?……

方法2,添加了01;中区;02;东区.....后,更新事件中加入代码 me.号码=me.区名,运行,号码和区名一样显示为中文,如何能使号码显示为区名的第一列?

方法1在我这里可以跑吖

方法2要注意这里:将区名控件改为值列表,格式中列数=2,第一列宽度为0,第二列宽度最好跟控件一样宽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-14 16:44 , Processed in 0.087555 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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