读书人

请问VB中怎么查看access的前/后记录

发布时间: 2012-08-08 14:32:45 作者: rapoo

请教VB中如何查看access的前/后记录
我用VB+access写了一个图片的查看器,希望能够前后查看图片的,可是一点击前后翻看的按钮时,总是出现“实时错误‘424’,要求对象”,请教该如何解决呢,谢谢!代码如下:


Private Sub Command1_Click()
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset

Set conn = CreateObject("Adodb.connection")
Set rs = CreateObject("Adodb.recordset")
conn.Open "provider=Microsoft.Jet.Oledb.4.0;data source=" & App.Path & "\vb.mdb"
rs.Open "select * from tupian", conn, 1, 3

If Text1(0).Text <> "" And Text1(1).Text <> "" Then
rs.AddNew
rs.Fields("mingchen").Value = Trim(Text1(0).Text)
rs.Fields("lujing").Value = Trim(Text1(1).Text)
rs.Update
MsgBox "数据添加成功!", vbInformation
Picture1.Picture = LoadPicture(App.Path & Text1(1).Text)
ElseIf Text1(0).Text = "" Then
Text1(0).SetFocus
Else
Text1(1).SetFocus
End If
rs.Close
End Sub

Private Sub Command2_Click()
Call connect
If Not (rs.BOF) Then
rs.MovePrevious
Else
rs.MoveLast
End If
Picture1.Picture = LoadPicture(App.Path & rs.Fields("lujing"))

End Sub

Private Sub Command3_Click()
Call connect
If Not (rs.EOF) Then
rs.MoveNext
Else
rs.MoveFirst
End If

Picture1.Picture = LoadPicture(App.Path & rs.Fields("lujing"))
End Sub

Private Sub Command4_Click()

Dim title As String
CommonDialog1.CancelError = False
CommonDialog1.InitDir = App.Path
CommonDialog1.ShowOpen


title = CommonDialog1.FileName
Text1(1).Text = Right(title, Len(CommonDialog1.FileName) - 17)

Text1(0).Text = CommonDialog1.FileTitle
End Sub

Private Sub Form_Load()
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset

Set conn = CreateObject("Adodb.connection")
Set rs = CreateObject("Adodb.recordset")
conn.Open "provider=Microsoft.Jet.Oledb.4.0;data source=" & App.Path & "\vb.mdb"
rs.Open "select * from tupian", conn, 3, 1
rs.MoveFirst
Picture1.Picture = LoadPicture(App.Path & rs.Fields("lujing"))

rs.Close


End Sub
Function connect()
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset

Set conn = CreateObject("Adodb.connection")
Set rs = CreateObject("Adodb.recordset")
conn.Open "provider=Microsoft.Jet.Oledb.4.0;data source=" & App.Path & "\vb.mdb"
rs.Open "select * from tupian", conn, 1, 1
End Function


[解决办法]
http://download.csdn.net/detail/veron_04/1483930
[解决办法]
你的流程有问题。

1 数据库不要频繁地重复打开。

2 另外,你在一个函数(过程)内部定义的对象,其他过程中是无法访问的。

3 由于你的数据库表是每次重新打开的。即便能够访问,每次的当前记录都是第一条,所以相对你图片显示的上一幅和下一幅都无从说起。

所以,最好是小通用段声明一对数据库对象,事先打开。

Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset

Private Sub Form1_Load()
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.Open "provider=Microsoft.Jet.Oledb.4.0;data source=" & App.Path & "\vb.mdb"
rs.Open "select * from tupian", conn, 1, 1
End Sub

此外,记录集指针移动后,才会更新此次移动引起的 EOF 或 BOF 属性。你在移动前判断是不对的。

读书人网 >VB

热点推荐