我执行删除是的常用代码,给你参考With adoRs
If .RecordCount = 0 Then MsgBox "无记录!", vbInformation, "操作提示": Exit Sub
If .BOF Or .EOF Or (.Status And adRecDeleted) <> 0 Or (.Status And adRecDBDeleted) <> 0 Then
MsgBox "请先选择要删除的记录!", vbInformation, "操作提示"
Exit Sub
End If
.Delete
If (.Status And adRecDeleted) <> 0 Or (.Status And adRecDBDeleted) <> 0 Then
DataGrid1.ReBind
.MoveNext
End If
If .EOF And .RecordCount > 0 Then .MoveLast
End With
If .RecordCount = 0 Then MsgBox "无记录!", vbInformation, "操作提示": Exit Sub
If .BOF Or .EOF Or (.Status And adRecDeleted) <> 0 Or (.Status And adRecDBDeleted) <> 0 Then
MsgBox "请先选择要删除的记录!", vbInformation, "操作提示"
Exit Sub
End If
.Delete
If (.Status And adRecDeleted) <> 0 Or (.Status And adRecDBDeleted) <> 0 Then
DataGrid1.ReBind
.MoveNext
End If
If .EOF And .RecordCount > 0 Then .MoveLast
End With
解决方案 »
- VB检查字符串里面不含星号和问号 怎么处理?
- 怎样用TreeView根据现有视图生成动态的5级目录树
- ascii码 13是回车,16是什么
- 用Visual Basic如何处理复数?
- flexgrid结合textbox框,用了ms forms 2.0 object library的textbox框,点击flexgird的cell时,text框是定位了,但是看不到mouse在编辑时
- 请问将图片写入数据库中和从数据库中读出显示出来,有几种可行的方法?
- 請問:VB中的焦點是什麽東東呦!???
- 怎样在菜单前面加一小图标?
- 求教:VB6.0中的英文字母都变成空白或少量箭头符号了
- 紧急求解;ListView中不同行有不同颜色如何实现?(不用消息处理,只用SetBKColor或其他方法,300分!!!!!
- 我在VB中用webbrowse加载web页面,已经设为全屏了,但是屏幕的右边还是有滚动条,请问怎样消除滚动条?
- 没人回,我再写一遍,大家帮忙。
dim cmd as new adodb.commandcmd.activeconnection=cnn
cmd.commandtype=adcmdtext
cmd.commandtext="delete from tab1 where fld1=10"
cmd.execute
dim cmd as new adodb.commandcmd.activeconnection=cnn
cmd.commandtype=adcmdtext
cmd.commandtext="delete from tab1 where fld1=10"
cmd.execute
删除是的常用代码,给你参考With adoRs
If .RecordCount = 0 Then MsgBox "无记录!", vbInformation, "操作提示": Exit Sub
If .BOF Or .EOF Or (.Status And adRecDeleted) <> 0 Or (.Status And adRecDBDeleted) <> 0 Then
MsgBox "请先选择要删除的记录!", vbInformation, "操作提示"
Exit Sub
End If
.Delete
If (.Status And adRecDeleted) <> 0 Or (.Status And adRecDBDeleted) <> 0 Then
DataGrid1.ReBind
.MoveNext
End If
If .EOF And .RecordCount > 0 Then .MoveLast
End With
If adoPrimaryRS.EOF Then Exit Sub
With adoPrimaryRS
.Delete
If Not .EOF Then
.MoveNext
End If
End With
Exit Sub
DeleteErr:
MsgBox Err.Description
不知你的问题是否出自这里。这种情况建议如楼上所说:
回复人: zhangy_0221(狼) ( ) 信誉:100 2002-04-16 00:15:00 得分:0
在窗口中放置一个图片框,再在图片框中放一堆图片按钮,用这种方法做toolbar是多么简单啊!这和普通标准按钮是一样的,不就什么问题也没了,呵呵!
我用了你的方法,还是不行。一样的报错。
绝对没有删除,我先移动记录后再点按钮就会出现错误提示。但同样的代码放在标准命令按钮的事件中就不会出错。
我把上述删除记录的代码放在标准按钮的事件里也不会出错。放在ToolsBar的事件才出错。或将上述代码定义成子过程,在Toolbar事件中引用也出错。
Case Is = "Delete"
cmdDelete_Click
改为
Case Is = "Delete"
sendkeys "{Tab}",true
cmdDelete_Click
试试
比如你的Form上有text1,那你就
Private Sub Toolbar_ButtonClick(ByVal Button As MSComctlLib.Button)
text1.setfocus
With adoPrimaryRS
....看看是否还出错
我现在查到出错时adoPrimaryRs.status=262400
查MSDN,查是哪个原因呢?大佬,帮我一把呀!
adRecCantRelease 0x400 指示由于现有记录被锁定,因此未保存新记录。
adRecDBDeleted 0x40000 指示已经从数据源中删除了该记录。
adRecSchemaViolation 0x20000 指示由于记录违反基本数据库的结构,因此未保存该记录。
adRecMaxChangesExceeded 0x2000 指示由于存在过多挂起的更改,因此未保存该记录。
而且,据我所知,这个问题也不会引起你所说地问题,一般会导致这样的情况:
用户编辑了datagrid的单元格,但没有按回车,就直接去点toolbar保存数据,这样实际保存的是没有修改过的数据。如果确认是上面的情况
你可以这样处理:
象我上面说的,把焦点移开或者
用sendkeys发送一个回车给Tdbgrid或者
在datagrid的BeforeColEdit事件中,设置Toolbar1.Enabled=False,防止用户在编辑期间按按钮,然后在AfterColEdit事件中设置Toolbar1.Enabled=Ture或者
设置datagrid1.CurrentCellModified=False,这样相当于按Esc键取消编辑
您是我的偶像!我要拜你为师!
我用移开焦点的方法,终于搞定了。看来是Toolbar不能获得焦点的原因,因为我用标准按钮来执行同样的代码不会出错。
你等着,我另外开贴,给你加分!你去领分吧!其他参与此问题的人,都给10分以上!我太高兴了!谁要分呀,大把送上!
我爱CSDN! I Love U!
On Error GoTo DeleteErr
With adoPrimaryRS
if not .eof and .bof then
.Delete
.MoveNext
.refresh
If .EOF Then .MoveLast
End With
Exit Sub
DeleteErr:
MsgBox Err.Description
End Sub