首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在ms-access-2010中从textBox中选择值时自动使用特殊格式的autoNumbering填充comboBox?

如何在ms-access-2010中从textBox中选择值时自动使用特殊格式的autoNumbering填充comboBox?
EN

Stack Overflow用户
提问于 2012-09-01 00:37:36
回答 1查看 728关注 0票数 0

我有一个包含combBox和textBox的表单。comboBox从一个只有三个值(JED、RUH和DMM)的表中获取数据。我想要的是,当用户选择comboBox中的三个值中的任何一个时,textBox将自动填充一个特殊格式的autoNumbering。例如,如果用户选择了JED,格式将是j0000a ("j":是静态的,它是JED的缩写," 0000 ":是一个按顺序递增的规则数字,"a":是一个字母,除非0000达到它的极限,否则永远不会改变,即9999)。请注意,comboBox中的每个值都有其特殊的autoNumbering格式,并且是唯一的。

我该怎么做呢?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2012-09-01 01:46:28

如果您将值存储在一个表中,那么下拉菜单的afterupdate()事件中的一些VBA代码就可以做到这一点。

我将在这里采取一些自由,因为我不知道你的确切结构。

代码语言:javascript
运行
复制
Table_ABRV
ID | ABRV
1  | JED
2  | RUH
3  | DMM

还有另一张桌子。

代码语言:javascript
运行
复制
Table_Auto
ID | CustomID | ABRVID
1  | j0000a   | 1

实现这一点的代码是

代码语言:javascript
运行
复制
Private Sub cmbABRV_AfterUpdate()
Dim seed, autoVal, autoRemainder, autoAlpha
'[ABRV][####][a]
seed = DCount("ID", "Table_Auto", "ABRVID = " & DLookup("ID", "Table_ABRV", "ABRV = '"  & cmbABRV.Text & "'"))
autoVal = Round(seed / 10000, 0) + 1 'this will be used for the alpha character
autoRemainder = seed Mod 10000 'this will be used for numeric value
autoRemainder = Format(autoRemainder, "000#") 'Add preceeding 0's
autoAlpha = ConvertToLetter(autoVal) 'convert the autoVal to Alpha
txtAuto.Value = Left(cmbABRV.Text, 1) & autoRemainder & autoAlpha 'Create string
End Sub

Function ConvertToLetter(Val) As String
'Convert a letter to a numeric equivalent
Dim iAlpha As Integer
Dim iRemainder As Integer
iAlpha = Int(Val / 27)
iRemainder = Val - (iAlpha * 26)
If iAlpha > 0 Then
  ConvertToLetter = Chr(iAlpha + 64)
End If
If iRemainder > 0 Then
  ConvertToLetter = ConvertToLetter & Chr(iRemainder + 64)
End If
End Function

从下拉列表中选择一个值后,表单文本框将显示自动编号。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12219361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档