| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1760 人关注过本帖
标题:DataGrid1显示的数据出现的问题:当前记录不支持更新
只看楼主 加入收藏
lijun337
Rank: 1
等 级:新手上路
帖 子:379
专家分:5
注 册:2006-4-12
结帖率:84.62%
收藏
 问题点数:0 回复次数:7 
DataGrid1显示的数据出现的问题:当前记录不支持更新

DataGrid1显示的数据出现的问题:当前记录不支持更新

Private Sub Command1_Click()
Dim jj, ss, ii As Integer
Dim mysql As String
For jj = 1 To 9
mysql = "select n,zy1,[j(" & jj & ")],[d(" & jj & ")] from fl2 where [z(" & jj & ")]='银行存款' "
If Conn.Execute(mysql).EOF = False And IsNull(Conn.Execute(mysql)(0)) = False Then
Set Rst = Conn.Execute(mysql)
Set DataGrid1.DataSource = Rst(这句从下面调入IF END IF循环里面)

Rst.UpdateBatch adAffectGroup = adAffectAll(再添加这句)

End If
Next jj

End Sub

结果显示出来了:按顺序的前面三个满足要求的数据,而不再是一个好象是随机的满足要求的数据(那个虽然满足要求数据记录,但只是这一个,在中间,前面和后面都有满足要求的数据!)

但是只显示出了三个数据记录!

同时还出现了提示框:

实时错误 “3251”
当前记录集不支持更新,这可能是提供程序的限制,也可能是选定锁定类型的限制!

搜索更多相关主题的帖子: mysql 数据 Rst Set Conn 
2007-09-06 17:05
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
收藏
得分:0 
怎么感觉我语文学得很差的样子……
2007-09-06 17:12
lijun337
Rank: 1
等 级:新手上路
帖 子:379
专家分:5
注 册:2006-4-12
收藏
得分:0 

再改:

还在原来的DB1下面再建立一个满足要求的新表,

再写句:
Private Rstemp As New ADODB.Recordset

同时在FORM_load()里再添加
和RS。Open....类似的句子,以同时打开两张表么?

具体代码请看:

Option Explicit
Private Conn As ADODB.Connection
Private Rst As New ADODB.Recordset
Private Rstemp As New ADODB.Recordset


Private Sub Command1_Click()
Dim jj, ss, ii As Integer
Dim mysql As String
For jj = 1 To 9
mysql = "select n,zy1,[j(" & jj & ")],[d(" & jj & ")] from fl2 where [z(" & jj & ")]='银行存款' "
If Conn.Execute(mysql).EOF = False And IsNull(Conn.Execute(mysql)(0)) = False Then
Set Rst = Conn.Execute(mysql)
Set DataGrid1.DataSource = Rst
Set Rstemp = Rst
Rstemp.UpdateBatch adAffectGroup = adAffectAll

End If
Next jj

End Sub


Private Sub Form_Load()
Dim ConString As String
ConString = "Provider=Microsoft.Jet.OleDb.4.0;Persist Security Info = False;" _
& "Data Source =" & App.Path & "\db1.mdb;Jet OleDb:"


Set Conn = CreateObject("ADODB.Connection")
With Conn
.ConnectionString = ConString
.Open
End With
Conn.CursorLocation = adUseClient
Rst.CursorLocation = adUseClient
Rst.Open "Select * From fl2", Conn, adOpenKeyset, adLockPessimistic, adCmdText
Rstemp.CursorLocation = adUseClient
Rstemp.Open "Select * From rjz", Conn, adOpenKeyset, adLockPessimistic, adCmdText

End Sub

执行后结果同上!!!!

2007-09-06 17:18
lijun337
Rank: 1
等 级:新手上路
帖 子:379
专家分:5
注 册:2006-4-12
收藏
得分:0 



修改之前,显示一个满足要求的记录没有错误提示框,!一切似乎正常!但我想在这DataGrid里显示所有满足要求的数据,而不是只显示一个!

而且这个数据好象是随机的,从满足要求的数据当中的随即抽取的,不是第一个满足要求的,也不是最后一个

修改之后,显示出来三个数据,而且是满足要求的前面三个数据,按顺序的!但只是显示出三个!而满足要求的不止这么点的,应该有20来个!
同时出现了错误提示框!

2007-09-06 17:25
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
收藏
得分:0 

同上=我还是看不懂。

也不说是哪行出错的,括号里的文字也不晓得是不是白话文……
VB的注释使用'标识的,从来也不是用括号把注释括起来的……
2007-09-06 17:27
lijun337
Rank: 1
等 级:新手上路
帖 子:379
专家分:5
注 册:2006-4-12
收藏
得分:0 
黄色条指向:“Rstemp.UpdateBatch adAffectGroup = adAffectAll”

那个用蓝色扩号里的文字是在帖子里补充说明的!代码里没有的!否则就运行不起来的!不是VB的注释

2007-09-06 18:06
lijun337
Rank: 1
等 级:新手上路
帖 子:379
专家分:5
注 册:2006-4-12
收藏
得分:0 
转载:

“这个问题主要是数据库里的主键所引起的,我用的sql server数据库,由于sql server没有自动编号,所以,引起了这样的问题,解决的方式是:“[id] [int] IDENTITY (1, 1) NOT NULL ,”在数据库的主键字段上修改一下sql语句就可以了。”

????也是出现了和我一样的错误提示,一位高手提供的解决思路!
2007-09-06 20:32
simpson
Rank: 3Rank: 3
等 级:论坛游民
威 望:7
帖 子:863
专家分:17
注 册:2006-11-16
收藏
得分:0 
我看到急
干脆找个周末我有时间的替你做好了!!!

全国最大的 Java专业电子书免费分享[url]http:///in.asp?id=xrmao[/url]
2007-09-06 22:27
快速回复:DataGrid1显示的数据出现的问题:当前记录不支持更新
数据加载中...
 
   



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

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