阿杰 发表于 2010-10-18 22:12:06

让ACCESS删除记录后自动排序字段不断号



.版本 2
.支持库 ADODB
.子程序 重新编号, 逻辑型, , 重新给ACCESS自动编号,成功返回真
.参数 数据库连接, 数据库连接对象
.参数 表名, 文本型
.参数 字段名, 文本型, , 如:ID
.参数 索引名, 文本型, , 如:ID
.局部变量 sql_重新编号, 文本型
.局部变量 记录数_局, 整数型, , , 操作返回的记录数
.局部变量 是否成功_局, 逻辑型
.局部变量 最后错误, 文本型
.如果真 (取反 (打开ACCESS数据库 (数据库连接, , , 取运行目录 () + “\” + #数据库文件名, , “”, )))
    信息框 (“打开ACCESS数据库失败!”, #错误图标 + #程序等待, )
    返回 (假)
.如果真结束
数据库连接.开始事务 ()
sql_重新编号 = “DROP INDEX ” + 字段名 + “ ON [” + 表名 + “]”
' //删除自动编号字段索引
输出调试文本 (sql_重新编号)
数据库连接.执行 (sql_重新编号, 记录数_局, )
最后错误 = 数据库连接.最后错误
.如果真 (最后错误 ≠ “”)
    信息框 (最后错误, #程序等待 + #错误图标, )
    .如果真 (取反 (数据库连接.回滚事务 ()))
      信息框 (“回滚事务失败!”, #程序等待 + #错误图标, )
      返回 (假)
    .如果真结束
    返回 (假)
.如果真结束

sql_重新编号 = “ALTER TABLE [” + 表名 + “] DROP COLUMN ” + 字段名
' //删除自动编号字段
输出调试文本 (sql_重新编号)
数据库连接.执行 (sql_重新编号, 记录数_局, )
最后错误 = 数据库连接.最后错误
.如果真 (最后错误 ≠ “”)
    信息框 (最后错误, #程序等待 + #错误图标, )
    .如果真 (取反 (数据库连接.回滚事务 ()))
      信息框 (“回滚事务失败!”, #程序等待 + #错误图标, )
      返回 (假)
    .如果真结束
    返回 (假)
.如果真结束
sql_重新编号 = “ALTER TABLE [” + 表名 + “] ADD ” + 字段名 + “ AUTOINCREMENT”
' //建立自动编号字段
输出调试文本 (sql_重新编号)
数据库连接.执行 (sql_重新编号, 记录数_局, )
最后错误 = 数据库连接.最后错误
.如果真 (最后错误 ≠ “”)
    信息框 (最后错误, #程序等待 + #错误图标, )
    .如果真 (取反 (数据库连接.回滚事务 ()))
      信息框 (“回滚事务失败!”, #程序等待 + #错误图标, )
      返回 (假)
    .如果真结束
    返回 (假)
.如果真结束

sql_重新编号 = “CREATE INDEX ” + 索引名 + “ ON [” + 表名 + “] (” + 字段名 + “)”
' //建立自动编号字段索引
输出调试文本 (sql_重新编号)
数据库连接.执行 (sql_重新编号, 记录数_局, )
最后错误 = 数据库连接.最后错误
.如果真 (最后错误 ≠ “”)
    信息框 (最后错误, #程序等待 + #错误图标, )
    .如果真 (取反 (数据库连接.回滚事务 ()))
      信息框 (“回滚事务失败!”, #程序等待 + #错误图标, )
      返回 (假)
    .如果真结束
    返回 (假)
.如果真结束
.如果真 (取反 (数据库连接.保存事务 ()))
    信息框 (“保存事务失败!”, #程序等待 + #错误图标, )
    返回 (假)
.如果真结束
返回 (真)

页: [1]
查看完整版本: 让ACCESS删除记录后自动排序字段不断号