设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1901|回复: 3
打印 上一主题 下一主题

[ADO/DAO] 为什么用Execute不能删除记录?请高手帮忙

[复制链接]
跳转到指定楼层
1#
发表于 2009-12-11 10:31:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我做了个小程序,用来批量从其他MDB的表中向我指定的MDB中导入数据。
在导入之前我需要将原来的旧数据删除。但执行相应的语句后数据库却纹丝不动。
请大家帮忙诊断一下:
Dim tbName As String
Dim rs As New ADODB.Recordset
Dim cnn As New ADODB.Connection
Dim cmd As New ADODB.Command
......
cnn.ConnectionString = "rovider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Text3.Text & ";Mode=ReadWrite|Share Deny Noneersist Security Info=False"  'text3内是我输入的MDB文件名
cnn.Open
'刚开始尝试用CNN的Execute
cnn.Execute "delete * from " & tbName & " where 地块编号 like " & "'" & fn & "*'", , adCmdText  'tbName是我给的表名,MDB内确有此表;
'此句执行后,表里的数据一点都没有改变!我于是打开MDB,新建了一个查询,将该句复制进去,执行结果正常。
'更加令人不解的是:当我不带条件语句WHERE后,即删除所有的记录时,执行成功了!如下:
cnn.Execute "delete * from " & tbName
......
'后来我又尝试CMD的Execute 和 RS的OPEN方法,都是这样的结果!
'甚至RS的OPEN方法里写上SELECT。。。。都不能行到正确的结果:如下:
rs.open "select * from " & tbName & " WHERE 地块编号 like " & Chr(34) & fn & "*" & Chr(34),cnn, adOpenKeyset, adLockOptimistic
'返回的记录数为0

以上问题,百思不得其解,恳请高手赐教!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-12-11 13:28:50 | 只看该作者
我上次碰到这样的问题
但可以用runsql的办法处理
3#
发表于 2009-12-11 14:22:55 | 只看该作者
dim dele as string
dele="delete * from 表名 where [地址] like '" & fn & "'"
或:dele="delete * from 表名 where [地址] like '%" & fn & "%'"
currentproject.connection.execute(dele)
如果表还属于窗体1的数据记录源,则要刷新一下:
form_窗体1.requery
4#
 楼主| 发表于 2009-12-11 23:00:31 | 只看该作者
谢谢大家的回复。
有一点我忘记了交待,我是在VB6里面写的程序。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-12 00:45 , Processed in 0.103388 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表