EXCEL VBA 窗体设计,如何实现查询前一条记录和后一条记录的功能。
发布网友
发布时间:2022-05-12 09:16
我来回答
共2个回答
热心网友
时间:2024-02-20 20:36
思路:将点击查询按钮后,进行查询,将查询到的结果所在的行号保存到数组中,
点击上 下 按钮时候改变数组下标即可。
Dim R As Long
Dim Arr()
Private Sub CommandButton1_Click() '查询按钮
ReDim Arr(0)
For qji = 2 To qjh '期间查询从第2行起到最后一行
If Val(Sheet2.Cells(qji, 3).Value) = qjn Then '如果年号相同查月
If Val(Sheet2.Cells(qji, 4).Value) = qjy Then '如果月号相同查证件
If Sheet2.Cells(qji, 8).Text = txtzjc.Text Then '如果证件相同
Arr(UBound(Arr)) = qji '将查询到的行保存到数组
ReDim Preserve Arr(UBound(Arr) + 1)
End If
End If
End If
Next
If UBound(Arr) > 0 Then
显示 (R) '查询完成后显示第一条
Else
MsgBox "没有结果"
End If
End Sub
Private Sub CommandButton2_Click() '下一条 按钮
R = R + 1
If R > UBound(Arr) - 1 Then
MsgBox "已经是最后一条"
R = R - 1
Else
显示 (R)
End If
End Sub
Private Sub CommandButton3_Click() '上一条 按钮
R = R - 1
If R < 0 Then
MsgBox "已经是第一条"
R = R + 1
Else
显示 (R)
End If
End Sub
Function 显示(N As Long) '显示函数
R0 = Arr(N) '要显示的行
txtjsdhc.Enabled = True '激活结算单号文本框
txtjsdhc.Value = Cells(RO, 2).Value '将结算单号赋值给结算单号文本框
lblgze.Caption = Cells(RO, 10).Value '将基础工资额赋值给标签
lblgjb.Caption = Cells(RO, 11).Value
lbljjb.Caption = Cells(RO, 12).Value
lbldnb.Caption = Cells(RO, 13).Value
lblyjj.Caption = Cells(RO, 14).Value
lblbwy.Caption = Cells(RO, 15).Value
lblxj.Caption = Cells(RO, 16).Value
txtxmc.Enabled = True '激活姓名文本框
txtxmc.Value = Cells(RO, 7).Value '将姓名列值赋给姓名框
cmdpre.Enabled = True '激活前后浏览按钮
End Function
热心网友
时间:2024-02-20 20:37
建议使用ADO连接查询SHEET2,可以方便地对记录集(查询结果)进行上移、下移操作追问这个真不会。。。。能不能再给详细说下。
追答留邮箱,发个文件给你