Office中国论坛/Access中国论坛
标题:
为什么用Execute不能删除记录?请高手帮忙
[打印本页]
作者:
caddog
时间:
2009-12-11 10:31
标题:
为什么用Execute不能删除记录?请高手帮忙
我做了个小程序,用来批量从其他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 None
ersist 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
以上问题,百思不得其解,恳请高手赐教!
作者:
jackysu78
时间:
2009-12-11 13:28
我上次碰到这样的问题
但可以用runsql的办法处理
作者:
xryacc2
时间:
2009-12-11 14:22
dim dele as string
dele="delete * from 表名 where [地址] like '" & fn & "'"
或:dele="delete * from 表名 where [地址] like '%" & fn & "%'"
currentproject.connection.execute(dele)
如果表还属于窗体1的数据记录源,则要刷新一下:
form_窗体1.requery
作者:
caddog
时间:
2009-12-11 23:00
谢谢大家的回复。
有一点我忘记了交待,我是在VB6里面写的程序。
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3