设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[帮助] ado的问题,请帮忙看一下,问题在哪里?

[复制链接]
跳转到指定楼层
1#
发表于 2016-12-15 13:17:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

点击删除产品按钮死活删除不了当前选中的产品,没有任何出错提示,请高手帮忙一下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
2#
发表于 2016-12-15 15:35:26 | 只看该作者
应该是主窗体引用了子窗体的数据吧?当你删除时,其实主窗体的数据已经为空,条件不成立,所以无法删除。
建议另外加变量处理。
http://www.office-cn.net/thread-119118-1-1.html
3#
发表于 2016-12-15 15:53:15 | 只看该作者
  1. Private Sub Cmd_删除产品_Click()

  2.     Dim i As Integer
  3.     Dim Stemp As String
  4.     Dim rs As ADODB.Recordset
  5.     Dim Rsql As String
  6.     Set rs = New ADODB.Recordset

  7.     Stemp = "Select * From 物品资料表"

  8.     rs.Open Stemp, CurrentProject.Connection, adOpenKeyset, adLockOptimistic

  9.     If rs.RecordCount < 1 Then
  10.         Exit Sub
  11.     End If

  12.     rs.MoveFirst
  13.     For i = 1 To rs.RecordCount


  14.         If rs("产品代码") = Me![Frm_物品资料输入子窗体]![产品代码] Then
  15.             MsgBox rs("产品代码")
  16.             rs.Delete 1
  17.             MsgBox "产品代码:" & Me![产品代码] & "的资料已经删除完成!", vbOKOnly, "删除完成"
  18.             Exit For
  19.         Else
  20.             rs.MoveNext
  21.         End If
  22.     Next i


  23.     Me![Frm_物品资料输入子窗体].Requery

  24.     Set rs = Nothing
  25. Exit_删除产品:
  26.     Set rs = Nothing
  27.     Exit Sub

  28. Err_删除产品:
  29.     MsgBox Err.Description
  30.     Resume Exit_删除产品

  31. End Sub
复制代码
建议直接用SQL动作查询,快又准,
就算你用ado也没有必要循环,直接在stemp上设定条件

4#
发表于 2016-12-15 15:55:13 | 只看该作者
还是你的代码,只是将adLockBatchOptimistic 更改为
adLockOptimistic
5#
 楼主| 发表于 2016-12-15 15:57:04 | 只看该作者
roych 发表于 2016-12-15 15:35
应该是主窗体引用了子窗体的数据吧?当你删除时,其实主窗体的数据已经为空,条件不成立,所以无法删除。
...

不是,我试了一下 主窗体不引用子窗体也一样,你的例子我在学习,谢谢了
6#
 楼主| 发表于 2016-12-15 16:06:25 | 只看该作者
Henry D. Sy 发表于 2016-12-15 15:53
建议直接用SQL动作查询,快又准,
就算你用ado也没有必要循环,直接在stemp上设定条件

谢谢你,问题解决。直接用sql动作查询我做过没问题。只是用这种方法上遇到了问题,所以发贴求助,呵呵!
7#
发表于 2016-12-15 16:14:38 | 只看该作者
su_xx 发表于 2016-12-15 16:06
谢谢你,问题解决。直接用sql动作查询我做过没问题。只是用这种方法上遇到了问题,所以发贴求助,呵呵!

MsgBox "产品代码:" & Me![产品代码] & "的资料已经删除完成!", vbOKOnly, "删除完成"
要把这句放在rs.Delete 后面,否则不管3721都提示删除完成
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-1 21:43 , Processed in 0.093788 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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