
问题描述:
我在编一个小程序时,需要连接一下数据库,我是用Access数据库,数据库名为time.mdb,其中有一张表,表名为:TT,具体步骤如陆握下。
我在模块中先把数据库连上,代码如下:
Option Explicit
Public con As adodb.Connection
Public rec As adodb.Recordset
Public Function conserver() As Boolean
'连接数据库
On Error GoTo on_error
Set con = New Connection
con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0Data Source=" &App.Path &"\time.mdbPersist Security Info=False"
con.ConnectionTimeout = 30
con.Open
conserver = True
Exit Function
'错误判断
on_error:
MsgBox "错误描述:" &Err.Description &vbCrLf &"错误代码:" &Err.Number, vbCritical + vbOKOnly, "找开数据罩蔽库错误"
conserver = False
End Function
'判断con是否打开,如果是则将它关闭
Public Function closecon() As Boolean
On Error Resume Next
If (Not con Is Nothing) Then
con.Close
Set con = Nothing
End If
End Function
'定义查询函数
Public Function recselect(ByVal strSQL As String) As Boolean
On Error GoTo on_error
Set rec = Nothing
Set rec = con.Execute(strSQL)
recselect = True
Exit Function
on_error:
MsgBox "错误描述:" &Err.Description &vbCrLf &"错误代码:" &Err.Number, vbCritical + vbOKOnly, "查询数据库错误"
recselect = False
End Function
然后再在窗体处调用,代码如下:
Private Sub Form_Load()
If conserver = False Then
MsgBox "连接数据库错误,请确认数据库是否存在,应用程序将退出...", vbCritical + vbOKOnly, "数据库错误"
Else
If recselect("select * from TT ") = False Then
MsgBox "运行时错误,不能取得客户信息...", vbInformation + vbOKOnly, "运行错误"
End If
End If
rec.Open "TT", con
If rec.EOF And rec.BOF Then
Exit Sub
End If
End Sub
这里为 *** 作数据库的时代码:
If recselect("select * from TT") = False Then
MsgBox "运行时错误,不能取得客户信息...", vbInformation + vbOKOnly, "运行错误"
Else
If rec.EOF And rec.BOF Then
strSQL = "物悉州insert into TT (月份) values(" &Format(Now, "m") &")"
If recselect(strSQL) = False Then
MsgBox "对不起,程序有误,请重新启动该程序!"
Exit Sub
End If
Else
rec.MoveLast
If rec.Fields("其它").Value = 1 Then
strSQL = "insert into TT (月份) values(" &Format(Now, "m") &")"
If recselect(strSQL) = False Then
MsgBox "对不起,程序有误,请重新启动该程序!"
Exit Sub
End If
End If
End If
End If
当我运行到rec.MoveLast时,程序就会报这个错:
实时错误'-***********(80040e24)'
行集不支持反向取。
我问过我的老师,他说我是用Recordset的时候用到了锁,但我的程序从头到尾都没用到Recordset,那为什么还会报这个错呢,请高人帮我一下,谢谢啦!
解析:
rec 变量就是Recordset
当以只读的形式打开表的时候 要按声明顺序引用数据
当以读写的形式打开表的时候 要改变的数据要预先锁定
锁定(设备、表、页面、记录集。。。)根据需要而定
修改后要解锁,这样作是为了保持数据同步
“automation服务器不能模凳弯创建对象”的问题的解决方案大全本人工作中的应用系统都是jsp的,大量javascript程序,一旦出“automation服务器不能创建对象”问题,大量报表及查询无法保存,苦思冥
想、千尝万试,终于将其搞定,现将相关方案与大家共享。
1、如果是Scripting.FileSystemObject (FSO 文本文件读写)被关闭了,开启FSO功能即可,在“运行”中执行regsvr32 scrrun.dll即可
2、安全模式设置成“中”,如果javascript脚本中报这个错误,还应将IE的安全设置“不允许运行未标记为安全的activeX控件”启用即可。
注意如果您将相应的网站设成“受信任的站点”,必须对“受信任的站点”进行相应的IE安全设置,此时如果对“Internet”IE设置将是徒劳
的。
3、有些脚本需要微软的 MSXML 控件才能进入。当使用 IE 5 以上版本的缺省安全模式时,会提示是否接受 MSXML 控件,如果接受,MSXML 将
自动安装到您的机器上(得等上几分钟)。如果自动安装不成功,可以自行下载和安装 MSXML 3.0 SP7。有时是由于粗陵msxml 3服务被关掉了,使用
regsvr32 msxml3.dll即可
4、用上面方法基本上能决问题。如果是在安装某个软件后出现这种问题,可尝度卸载该软件或重装一下答案补充 可能是你机器上没有这个程序运行的一些环境,或者程序需要一些文件(比如dll之类的)的版本不对。 答案补充 不是那个意思。如果你只用了VB,里面没有引用第三方控件什么的,估计就是你的vb运行环境有问题了,重新旦闷安装一下VB的运行环境看看。如果引用了第三方控件,是不是这个控件没有被注册?你注册一下就应该没问题了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)