hi,大家好!

大家周末都有什么安排呢?要不要抽出半个小时和我一起来学校学习Access?今天我会分享一些实用的功能。让我们先来看一下这些功能。如图所示,我在窗体上添加了几个按钮,用于显示首条记录、上一条、下一条和尾条记录。这样一来,我们可以快速查看数据,在实际应用中非常实用。让我们一起来看看如何实现这些功能


【首记录、上一条、下一条、尾记录】半小时学会记录的滚动,轻松查看数据_access开发

01

添加按钮

这里新增、编辑的代码我们就不再去说明了,我们拿一个现在的编辑窗体,在窗体上添加4个按钮控件,然后将控件的名称分别改成:btnFirst、btnPrevious、btnNext、btnLast

接着也可以像我一下给按钮添加一下图片,如图


【首记录、上一条、下一条、尾记录】半小时学会记录的滚动,轻松查看数据_access开发_02

02

调整代码

这里我们先不急着添加代码,我们先将原来的加载事件的代码调整一下

'调整加载事件
Private Sub Form_Load()
    On Error GoTo ErrorMsg
    If Me.DataEntry Then
        Exit Sub
    Else
        FormLoad (Me.OpenArgs)
    End If

ExitErr:
    Exit Sub
ErrorMsg:
    MsgBox Err.Description, vbCritical
    Resume ExitErr
End Sub
'增加函数
Function FormLoad(gID As Long)
    On Error GoTo ErrorMsg
    Dim rst As Object ' ADODB.Recordset
    Dim strSQL As String
    Dim cnn As Object ' ADODB.Connection


    Set cnn = CurrentProject.Connection
    Set rst = CreateObject("ADODB.Recordset") 'New ADODB.Recordset
    strSQL = "select * from tblProduct where ID=" & Nz(gID, 0)
    rst.Open strSQL, cnn
    Me!ID = rst!ID
    Me!ProductCode = rst!ProductCode
    Me!ProductName = rst!ProductName
    Me!ProductModel = rst!ProductModel
    Me!ProductSpec = rst!ProductSpec
    Me!Unit = rst!Unit
    Me!IsEnabled = rst!IsEnabled
    Me!Remark = rst!Remark

    rst.Close
ExitErr:
    Set cnn = Nothing
    Set rst = Nothing
    Exit Function
ErrorMsg:
    MsgBox Err.Description, vbCritical
    Resume ExitErr
End Function

03

添加代码

代码调整后,我们就可以来添加代码了,具体代码如下:


'首记录
Private Sub btnFirst_Click()
    Form_frmProduct!frmProduct_List.Form.Recordset.MoveFirst
    FormLoad (Nz(Form_frmProduct!frmProduct_List!ID, 0))
End Sub
'尾记录
Private Sub btnLast_Click()
    Form_frmProduct!frmProduct_List.Form.Recordset.MoveLast
    FormLoad (Nz(Form_frmProduct!frmProduct_List!ID, 0))
End Sub
'下一条
Private Sub btnNext_Click()
     If Form_frmProduct!frmProduct_List.Form.CurrentRecord < Form_frmProduct!frmProduct_List.Form.Recordset.RecordCount Then
       Form_frmProduct!frmProduct_List.Form.Recordset.MoveNext
        FormLoad (Nz(Form_frmProduct!frmProduct_List!ID, 0))
    End If
End Sub
'上一条
Private Sub btnPrevious_Click()
    If Form_frmProduct!frmProduct_List.Form.CurrentRecord > 1 Then
        Form_frmProduct!frmProduct_List.Form.Recordset.MovePrevious
        FormLoad (Nz(Form_frmProduct!frmProduct_List!ID, 0))
    End If
End Sub

04

运行测试

最后,我们就可以来运行测试一下了,我们来看一下效果:


【首记录、上一条、下一条、尾记录】半小时学会记录的滚动,轻松查看数据_vba_03


好了,分享就到这里,大家快去试一下吧!