把RecordSet的LockType属性设置为4,可以保证“修改操作”只作用于RecordSet对象,而不会影响到数据库

当打开一个RecordSet后,如果对它进行修改操作,会影响到原始数据库。例如使用RecordSet中的delete函数“删除纪录”,那么这个操作会立刻作用于数据库,也就是会删除数据库中的对应纪录。

有些情况下,我们希望修改操作只作用于内存中的RecordSet对象,而不会影响到原始数据库。例如当使用RecordSet中的delete函数“删除纪录”时,我们希望这个操作只删除RecordSet对象中的纪录,而不会删除原始数据库中的对应纪录。

为了达到这个目的,我们可以在打开RecordSet时,把它的LockType属性设置为4。

代码如下:

Set RecordSet__storeing_article=Server.CreateObject("ADODB.Recordset")
set RecordSet__storeing_article.ActiveConnection = connect_object
RecordSet__storeing_article.CursorType = 2
RecordSet__storeing_article.LockType = 4
RecordSet__storeing_article.Open "select * from table_A"
 
do While RecordSet__storeing_article.EOF = False 
  if RecordSet__storeing_article.fields("a").value > 100 then
   RecordSet__storeing_article.delete 1 '只删除RecordSet对象中的当前纪录,而不会删除数据库中的对应纪录
  end if
  RecordSet__storeing_article.movenext
loop

 

解释:如果没有RecordSet__storeing_article.LockType = 4这句话,那么执行RecordSet__storeing_article.delete 1时,就会删除数据库中的对应纪录

我们也可以从另外一个角度来理解LockType = 4对于delete函数的作用:RecordSet对象只是程序运行时位于内存中的一个对象变量,当删除这个对象中的纪录时,只是修改了内存中的信息,而不会真正去修改数据库文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在VBA中,我们可以使用Recordset对象来更新Access数据库。下面是一个简单的步骤来更新数据库: 1. 创建连接对象并打开数据库。我们可以使用ADODB库中的Connection对象来建立与数据库的连接,并使用Open方法打开数据库文件。例如: ```vba Dim conn As New ADODB.Connection conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=path\to\database.accdb" ``` 2. 创建Recordset对象并执行SQL查询。我们可以使用Recordset对象来执行SQL查询,并使用Open方法指定查询语句。例如: ```vba Dim rs As New ADODB.Recordset rs.Open "SELECT * FROM TableName", conn ``` 3. 更新数据库记录。我们可以使用Recordset对象的Edit和Update方法来编辑和更新记录。例如,假设我们要更新某个字段的值: ```vba rs.Edit rs("FieldName") = "NewValue" rs.Update ``` 4. 关闭Recordset和连接对象。完成更新后,我们应该关闭Recordset和连接对象以释放资源。例如: ```vba rs.Close Set rs = Nothing conn.Close Set conn = Nothing ``` 完整的更新过程如下所示: ```vba Sub UpdateDatabase() Dim conn As New ADODB.Connection conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=path\to\database.accdb" Dim rs As New ADODB.Recordset rs.Open "SELECT * FROM TableName", conn rs.Edit rs("FieldName") = "NewValue" rs.Update rs.Close Set rs = Nothing conn.Close Set conn = Nothing End Sub ``` 以上就是使用VBA Recordset对象更新Access数据库的简单步骤。根据需要,您可以使用适当的SQL查询来更新不同的字段和记录。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值