Office中国论坛/Access中国论坛

标题: 各位,请教一个生成编号的问题。 [打印本页]

作者: praying    时间: 2005-1-4 09:00
标题: 各位,请教一个生成编号的问题。
我想再请教一个关于自动生成编号的问题。

比如我想建一个VIP管理的数据库。给每一个客户以编号。

可是我要先在数据库中生成若干个有排列的编号,格式如MS8600001~MS8609999

各位高手,能不能帮我完成这样的一个功能:

当打开客户列表窗体,在窗体的底端放置一个按钮:生成编号

点击后弹出对话框,要求生成多少个客户编号(生成的新编号紧接上一号码)

如已有的客户编号已至MS8600553

在对话框中输入30,生成的编号为:MS8600554~MS8600583

在此先谢过了。待我学成一定不忘来此发表有价值的文章。[em03][em03][em03]

[此贴子已经被作者于2005-1-4 1:00:59编辑过]


作者: zyp    时间: 2005-1-4 17:09
用For循環首先要取得起始編號,你的為8600553(我們不要前面字符,且建議你將此數據字單獨存在一個表中),然後:dim Num1 As Long

NUm1=8600553  '假設已取得此號

dim i as integer

dim VipNo as string

for i=1 to 30

      VipNo="MS" & num1+1

      '在這是加入你要處理的程序,如將其編號加入到數據庫

next i


作者: goodidea    时间: 2005-1-4 19:46
顺便补充, 可这样转换成数值类型

NUm1=Clng(mid$("MS8600553",3))

或者NUm1=Val(mid$("MS8600553",3))



[此贴子已经被作者于2005-1-4 11:47:50编辑过]


作者: wuaza    时间: 2005-1-4 20:12
请问goodidea,mid$怎么在帮助中找不到,而在表达式生成器中是有的,它的用法是怎样的?我的office已经完全安装了呀。
作者: goodidea    时间: 2005-1-4 23:07
参见MID函数,Mid 函数返回 Variant (String),其中包含字符串中指定数量的字符。语法Mid(string, start[, length])Mid 函数的语法具有下面的命名参数:部分说明string必要参数。字符串表达式,从中返回字符。如果 string 包含 Null,将返回 Nullstart必要参数。为 Long。string 中被取出部分的字符位置。如果 start 超过 string 的字符数,Mid 返回零长度字符串 ("")length可选参数;为 Variant (Long)。要返回的字符数如果省略或 length 超过文本的字符数(包括 start 处的字符),将返回字符串中从 start 到尾端的所有字符。





说明欲知 string 的字符数,可用 Len 函数。注意 MidB 函数作用于字符串中包含的字节数据,如同在双字节字符集(DBCS)语言中一样。因此其参数指定的是字节数,而不是字符数。对于使用 MidB的示例代码,请参阅示例主题中的第二个示例。
作者: praying    时间: 2005-1-5 10:52
以下是引用zyp在2005-1-4 9:09:10的发言:



用For循環

首先要取得起始編號,你的為8600553(我們不要前面字符,且建議你將此數據字單獨存在一個表中),然後:

dim Num1 As Long

NUm1=8600553  '假設已取得此號

dim i as integer

dim VipNo as string

for i=1 to 30

      VipNo="MS" & num1+1

      '在這是加入你要處理的程序,如將其編號加入到數據庫

next i

可是我还是要问问,怎么才能把这些生成的编号逐条插入到表中去呢????

我在VBA里用INSERT INTO不行呀~~~

能给我写一个完整的代码或是做成文件给我吗~~现在特急~~~~~

谢谢谢谢谢谢谢谢谢谢[em11][em11][em11]
作者: praying    时间: 2005-1-5 11:13
还有就是如何取得表中的最后一个编号呢?

大哥再帮帮忙~~~~
作者: hi-wzj    时间: 2005-1-5 20:51
若编号固定都为:MS86加5位数的顺序码的话,可以将该字段设为数字型的,同时将其格式设为“:"ms86"00000,这样编程简单点,同时文件占用空间也小。还有就是如何取得表中的最后一个编号呢?若输入顺序肯定是由小到大的话可用dlast函数来做,否则可用dmax函数来完成。追加记录不会做的话,可参看追加查询的sql语言。




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