| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 228 人关注过本帖
标题:vb怎么用mshflexgrid实时删除、清空数据库
只看楼主 加入收藏
凛冬1
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2020-3-14
结帖率:100%
  问题点数:20  回复次数:10   
vb怎么用mshflexgrid实时删除、清空数据库
请教各位大神们,我这个为什么总是删除不了数据库的内容,只是把当前mshflexgrid表格上的数据删了,下次再查询的时候原来删除的内容依旧还在?我用了rs.Update    MSHFlexGrid1.Refresh都没有反应,要么就是报错对象关闭时不允许操作。
还有清空的话清空不了mshflexgrid表格,只有下次再打开这个表格或者再次查询的时候才显示把表格清空了??

Private Sub Command2_Click()
'连接数据库
If conn.State = 0 Then
   conn.ConnectionString = "Provider=Microsoft.jet.OLEDB.4.0;Data Source=" & _
 App.Path & "\设计计算.mdb;Persist Security Info=False"   '连接数据库的驱动字符串并打开数据库
   conn.Open
End If

'删除
Dim sql As String
Set rs = New ADODB.Recordset     

Set rs.ActiveConnection = conn
sql = "delete from [设计计算] where  [管段编号]=' " & MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 0) & " ' "   
conn.Execute sql  
MSHFlexGrid1.RemoveItem MSHFlexGrid1.Row
rs.Open sql, conn, adOpenKeyset, adLockBatchOptimistic

Dim i%
For i = 1 To MSHFlexGrid1.rows - 1
 MSHFlexGrid1.TextMatrix(i, 0) = i
Next
conn.Close  
Set conn = Nothing   
End Sub

'清空
Private Sub Command12_Click()
Dim sql$
If conn.State = 0 Then
   conn.ConnectionString = "Provider=Microsoft.jet.OLEDB.4.0;Data Source=" & _
 App.Path & "\设计计算.mdb;Persist Security Info=False"   '连接数据库的驱动字符串并打开数据库
   conn.Open
End If

sql = " Delete  from [设计计算] "
 conn.Execute sql
 MsgBox "已清空"
 conn.Close
End Sub
搜索更多相关主题的帖子: sql conn 删除 清空 数据库 
7 天前 21:41
wufuzhang
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:贵宾
威 望:20
帖 子:204
专家分:1327
注 册:2017-8-9
  得分:0 
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Test.mdb"
conn.Execute "delete * from testdata where TSID='100'" ''删除TSID为100的那条记录
两点:1、我不知道你为什么要加[] 2、where后面这么多空格,且=后面也不应该有空格

不经历千百遍的调试,怎能体会成功时那一刹那的喜悦。
6 天前 09:21
凛冬1
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2020-3-14
  得分:0 
[]是因为那是字段名称,不加[]容易识别错误。空格没有影响吧?
6 天前 11:04
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:263
帖 子:4526
专家分:28025
注 册:2008-10-15
  得分:0 
在手机上,没看代码,只提下程序优化
1,连接数据库的代码段,建议单独做一个过程。
2,执行sql命令的建议单独做一个过程,查询的单独也做个过程。
需要删除时,把sql命令传进去就可以。免得同样的代码倒处都有,如果需要修改下,那就好烦了。

字段名,表名写中括号是个好习惯。

授人于鱼,不如授人于渔
早已停用QQ了
6 天前 12:54
ZHRXJR
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:104
帖 子:902
专家分:4713
注 册:2016-5-10
  得分:0 
点击 MSFlexGrid1 中的记录,就可以直接删除一条记录

在 MSFlexGrid1_Click 事件中删除,按钮事件不能操作MSFlexGrid1对象
程序代码:
Private Sub MSFlexGrid1_Click()
'删除
Dim I As String
Call KKK(conn)
sql = "delete from 设计计算 where  管段编号='" & MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 2) & "'"
conn.Execute sql
conn.Close
Set conn = Nothing
MsgBox "删除成功!"
Unload Me
删除清空数据库.Show
End Sub

Sub KKK(conn)
conn.ConnectionString = "Provider=Microsoft.jet.OLEDB.4.0;Data Source=" & App.Path & "\设计计算.mdb;Persist Security Info=False"
conn.Open
End Sub

至于全部清空代码将不贴上来了。
附件: 您没有浏览附件的权限,请 登录注册
5 天前 12:25
凛冬1
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2020-3-14
  得分:0 
回复 5楼 ZHRXJR
我运行完了打开数据库依旧没有删除。如果直接点击mshflexgrid就删除的话万一用户不小心点到了某一行怎么办
5 天前 15:28
ZHRXJR
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:104
帖 子:902
专家分:4713
注 册:2016-5-10
  得分:0 
加一个判断是否要删除将可以了。
程序代码:
Private Sub MSFlexGrid1_Click()
'删除
If MsgBox("是否要确定删除这条记录?", 33, "删除确认!") = 1 Then
    Call KKK(conn)
    sql = "delete from 设计计算 where  管段编号='" & MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 2) & "'"
    conn.Execute sql
    conn.Close
    Set conn = Nothing
    MsgBox "删除成功!"
    Unload Me
    删除清空数据库.Show
End If
End Sub

如果按照我的代码,不可能没有删除,除非您的mdb是以前打开的!
5 天前 15:50
凛冬1
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2020-3-14
  得分:0 
我是运行完了才打开mdb的,mdb真的没有变化,只是mshflexgrid上数据删掉了
5 天前 21:30
ZHRXJR
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:104
帖 子:902
专家分:4713
注 册:2016-5-10
  得分:0 
回复 8楼 凛冬1
你的代码发上来看看,我的代码一点问题都没有.
4 天前 10:55
凛冬1
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2020-3-14
  得分:0 
程序代码:
Private Sub MShFlexGrid1_Click()
'删除
Dim i As String
Call KKK(conn)
sql = "delete from [设计计算] where  [管段编号]='" & MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 2) & "'"
conn.Execute sql
conn.Close
Set conn = Nothing
MsgBox "删除成功!"
End Sub

Sub KKK(conn)
conn.ConnectionString = "Provider=Microsoft.jet.OLEDB.4.0;Data Source=" & App.Path & "\设计计算.mdb;Persist Security Info=False"
conn.Open
End Sub


mdb一直没有动静,因为我只是要删一行,所以把你那个Unload Me    删除清空数据库.Show   这段代码删了,界面上mshflexgrid也没有反应,但是会弹出“删除成功!”
4 天前 17:06
快速回复:vb怎么用mshflexgrid实时删除、清空数据库
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.174248 second(s), 8 queries.
Copyright©2004-2020, BCCN.NET, All Rights Reserved