EXCEL vba *** 作access数据库,执行insert *** 作时,如何将记录插在数据表的最后一行?

EXCEL vba *** 作access数据库,执行insert *** 作时,如何将记录插在数据表的最后一行?,第1张

如果没有特殊设定的话,基本都是自动最后一行。

在使用INSERT INTO TableName(field1,field2,field3,....) VALUES(....)向Access数据库插入一条记录

用DAO 的方式完成:

Dim daoDB As DAO.Database

Dim daoRect As DAO.Recordset

Dim newCode As String'新的档案编号

Set daoDB = OpenDatabase("E:\DB1.mdb", 0, 0)

Set daoRect = daoDB.OpenRecordset

("SELECT 档案编号 FROM 会员档案", dbOpenSnapshot)

If daoRect.BOF And daoRect.EOF Then

newCode="1"

Else

daoRect.MoveLast

newCode=Val(daoRect(0))+1

End If

还可以直接获得最大的“档案编号”

Set daoRect = daoDB.OpenRecordset

("SELECT Max(档案编号) FROM 会员档案", dbOpenSnapshot)

此时就不需要移动数据记录了。直接计算新的“档案编号”

newCode=Val(daoRect(0))+1

首先设置好Adodc1(你建立的Adodc控件名称)的connet属性为access,DatabaseName属性为你数据库的名称,还有RecordSource属性。然后设置text1的DataSource属性为Adodc1,DataField属性为你数据库第三列的字段名称(表中的每一列称为一字段)以上是设置部分

下面是代码部分:

'窗体变量声明

Dim WithEvents adoPrimaryRS As Recordset '声明记录集对象

'在窗体的加载事件中创建ADO对象

Private Sub Form_Load()

On Error GoTo GoError

Set adoPrimaryRS=New Recordset'创建记录集对象实例

Set text1.DataSource=adoPrimaryRS

adoPrimaryRS.MoveLast'定位于最后一条记录

Exit Sub

GoErorr:

Msgbox Err.Description

End Sub

若你不设置Adodc的属性可以将下面的代码放在语句Private Sub Form_Load()下面也是一样的

Dim db As Connection '声明连接对象

Set db =New Connection'创建连接对象实例

db.Open"PROVIDER=Microsoft.Jet.OLEDB.4.0Data Source=在此填上你数据文件的全路径地址"


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9950693.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存