散分!!!Access中,怎么样让一个字段No(Int)的值从X递增到X+N.也就是说第一条记录字段No值为50,下一条记录的

散分!!!

现有一个表
CCNF(NO integer Null,Barcode Varchar(30) Null,Name varchar(30) Null)

怎么样让字段NO的值从X递增到X+N.
也就是说第一条记录字段No值为50,
下一条记录的字段No值则为51,
再下一条则为52,
一直如此直到最后.如何实现?

---------------------------------------------------------------

自动编号不可以吗?把初值设成50。
---------------------------------------------------------------

也是使用自动编号,但是初始值不考虑进行改变。
然后删除前49笔记录,就可以了。
---------------------------------------------------------------

始终不大明白楼主的意思 :)
---------------------------------------------------------------

通过默认值表达式呀
---------------------------------------------------------------

还有通过执行updata 查询
---------------------------------------------------------------

public sub NoPlus1()
dim maxNo as Variant,newNo as Long
dim curDB as Database, strSQL as String

maxNo = DMax("NO","CCNF","")
newNo = Nz(maxNo,0) + 1

strSQL = "INSERT INTO CCNF ([NO]) SELECT " & newNo
set curDB = currentDB()
curDB.Execute strSQL

end sub

以上这段程序自己调试一下吧,应该没什么问题。有两点需要注意:
1。我用的是DAO中的数据库对象,如果你用的是Access2000或XP,有可能默认
用的是ADO的数据库对象,你要自己改一下,道理是一样的。
2。我没有写出错保护程序,你还应当考虑些意外情况。例如,你的NO字段应
当为Long类型而不是Integer,否则用久了会出错的。

---------------------------------------------------------------

在表中增加一个自动增量字段ID,然后:

Update set NO=DCount('ID','CCNF,'ID<=' & ID )
FROM CCNF
---------------------------------------------------------------

更改递增 AutoNumber 字段的起始值
对于没有包含记录的新表,可以将“新值”属性设置为“递增”的 Autonumber 字段起始值的除 1 以外的数值。如果表已经含有记录,也可以使用以下过程将下一个在 Autonumber 字段中指定的值更改为新的数值。

创建只有一个字段(Number 字段)的临时表,将此字段的 FieldSize 属性设置为 Long Integer,并且用要更改的表中 AutoNumber 字段的名称为其命名。
操作方法?

在“数据表”视图中,在临时表的 Number 字段输入比 AutoNumber 字段起始值少 1 的值,例如,如果希望 Number 字段从 100 开始,则在 Number 字段中输入 99。

创建并执行追加查询,将临时表追加到要更改 AutoNumber 值的表。
操作方法?

注意 如果原有表中含有主键,则必须在执行追加查询之前,暂时将主键删除。此外,如果原有表包含有 Required 属性设为 Yes 的字段, Indexed 属性设为 Yes (No Duplicates) 的字段,或 ValidationRule 属性设置为防止字段中出现 Null 数据项的字段,则必须暂时使这些设置失效。

删除临时表。

删除追加查询所添加的记录。

如果在步骤三中使属性设置失效,请将这些属性恢复为原有设置。
在余下的表中输入记录时,Microsoft Access 将使 AutoNumber 字段中的值比临时表中输入的数值大 1。

注意 如果要在更改起始 AutoNumber 值后压缩数据库,请首先确保在表中至少添加一条记录;否则,在压缩数据库时,下一条添加的记录的 AutoNumber 值将重新设置为比以前最高值多 1。例如,如果重新设置起始值时表中没有任何记录,则压缩操作将把下条添加记录的 AutoNumber 值设置为 1。如果在重新设置起始值时表中含有记录,且最高数值为 50,则压缩操作将把下条添加记录的 AutoNumber 值设置为 51。

---------------------------------------------------------------

以上是在ACCESS帮助里找到的,但我觉得他说的不是很清楚,我把我的做法告诉你

1、创建只有一个字段(Number 字段)的临时表,将此字段的 FieldSize 属性设置为 Long Integer,并且用要更改的表中 AutoNumber 字段的名称为其命名。

针对你的情况来说就是 建一个表比如说是 TEMP 其中字段为 NO,然后在 TEMP里添加一个记录,记录的值比你要启始的数值小1,这里你应该写 50 。

2、然后,你选中 TEMP 表,按右键选“复制”,如果再按右键选“粘贴”,这时候出现一个对话框,在表名称里写上你要追加的表,这里你应该写CCNF,但你这个表里的NO字段应该是“自动编号”,在下面的选项里选择“将数据追加到已有的表”,按确定。

3、打开你的表 CCNF ,你会发现有一条空记录,其NO为50,把它删除掉,这样你再添加记录时的NO,就是从51开始了!

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus