Private Sub Form_Load() Dim x As Integer 注释:循环计数器 Dim intID As Integer 注释:用来作为新记录的 ID 号 Dim sSql As String 注释: 为SQL 语句设置文本。 sSql = "SELECT * FROM [测试] ORDER BY [ID]" 注释: 打开数据库 Set db = DBEngine.OpenDatabase("c:Test.mdb") 注释: 创建新的记录集对象。 Set rec = db.OpenRecordset(sSql, dbOpenDynaset) ‘记录集非空 If Not rec.EOF Then rec.MoveLast rec.MoveFirst For x = 1 To rec.RecordCount Step 1 注释:-------------------------------------------------------+ 注释: 获取空余最小 ID 号: 注释: 从 1 开始搜索,若记录计数器 x 不等于 ID 字段值 , 注释: 则取该序号作为 ID值,并跳出循环,若一直匹配,则取大于 注释: 计数器当前值的最小值作为 ID值 注释:-------------------------------------------------------- If x < > rec.Fields("ID") Then intID = x Exit For End If intID = x + 1 rec.MoveNext Next x End If
With rec .AddNew 注释: 记录集为空则 intID 为 0,新记录的 ID 值置为 1 注释: 非空则返回空余最小ID号 .Fields("ID") = IIf(intID, intID, 1) .Fields("Any") = " 新记录" & CStr(intID) .Update .Bookmark = .LastModified End With ‘关闭记录集及数据库 rec.Close db.Close
End Sub
---- 因为程序中使用了数据库引擎,还需添加对 DAO3.51 的引用。选择VB开发环境“工程”菜单下的“引用”菜单项,弹出“引用”对话框,选中“Microsoft DAO 3.51 Object Library” 即可。