我在FORM上放了很多的Label来显示数据,但是当数据有多条时我希望在
FORM上已经显示的第一条记录下方接着显示记录,请问高手教我怎么做。
例如:我查询出的记录有三条,我要在FORM上显示第一条和第二条,第三
条另外打开这一个FORM写,但是这个FORM上的Label是不变的,也就是说
只有这几个,不知道这样说清楚了没有。
form 页上的Label格式:
lblYYH lblYYLX
lblMLDJ lblJJLB
lblJBDJ lblJFRL
lblYDXZ lblLTBZ
lblLLBZ lblJFBL
lblCTBB lblPTBB
lblJLFS
我填写数据的代码如下:
Public Sub 填写页面(nZHH As Long)
Dim rs As New dbRecordset
rs.Open "SELECT * FROM KHDA_YDD111 WHERE ZHH=" & nZHH
Do While Not rs.EOF
If Not rs.EOF Then
lblYYH = rs("YYH")
lblYYLX = rs("JFLX")
lblMLDJ = rs("FLSM")
lblJJLB = rs("FLSM")
lblJBDJ = rs("JBDJ")
lblJFRL = rs("JFRL")
lblYDXZ = rs("YDXZ")
lblLTBZ = rs("LTBZ")
lblLLBZ = rs("LLBZ")
lblJFBL = rs("BL")
lblCTBB = rs("CTBB")
lblPTBB = rs("PTBB")
lblJLFS = rs("JLFS")
End If
rs.MoveNext
Loop
rs.Close
end sub
FORM上已经显示的第一条记录下方接着显示记录,请问高手教我怎么做。
例如:我查询出的记录有三条,我要在FORM上显示第一条和第二条,第三
条另外打开这一个FORM写,但是这个FORM上的Label是不变的,也就是说
只有这几个,不知道这样说清楚了没有。
form 页上的Label格式:
lblYYH lblYYLX
lblMLDJ lblJJLB
lblJBDJ lblJFRL
lblYDXZ lblLTBZ
lblLLBZ lblJFBL
lblCTBB lblPTBB
lblJLFS
我填写数据的代码如下:
Public Sub 填写页面(nZHH As Long)
Dim rs As New dbRecordset
rs.Open "SELECT * FROM KHDA_YDD111 WHERE ZHH=" & nZHH
Do While Not rs.EOF
If Not rs.EOF Then
lblYYH = rs("YYH")
lblYYLX = rs("JFLX")
lblMLDJ = rs("FLSM")
lblJJLB = rs("FLSM")
lblJBDJ = rs("JBDJ")
lblJFRL = rs("JFRL")
lblYDXZ = rs("YDXZ")
lblLTBZ = rs("LTBZ")
lblLLBZ = rs("LLBZ")
lblJFBL = rs("BL")
lblCTBB = rs("CTBB")
lblPTBB = rs("PTBB")
lblJLFS = rs("JLFS")
End If
rs.MoveNext
Loop
rs.Close
end sub
谁能教我怎么样用另一页显示吗?就是有多条数据记录时
这一页只显示两条,再另用一页显示另两条记录。谢谢了
下一页按钮显示两条后的数据,如果rs("YYH")=1和2我就将记录写到form上
的Label上显示,但当记录rs("YYH")=3和4时再点击下一页按钮打开同一form
将记录写在form上显示。
'add four label1(index=0 to 3) to frame1,a vscroll on form1:Private Sub Form_Load()
VScroll1.Move Frame1.Left + Frame1.Width, Frame1.Top, 500, Frame1.Height
VScroll1.Max = 5
VScroll1.Min = 1
VScroll1.Value = 1
End SubPrivate Sub VScroll1_Change()
For i = 0 To 3
Label1(i).Caption = "No." & VScroll1.Value & ":label1(" & i & ")"
Next
End Sub
的情况,我的form上有下一页和退出等按钮,现在的问题就是我不知道
要怎样将“YYH=3“和”YYH=4”的情况用同一页来显示。我填写等于1和2
的代码如下:
Public Sub 填写页面(nZHH As Long)
Dim rs As New dbRecordset
dim icount(2) as integer
rs.Open "SELECT * FROM KHDA_YDD111 WHERE ZHH=" & nZHH
Do While Not rs.EOF
If Not rs.EOF Then
if rs("yyh")=1 then
lblYYH(icount(0)) = rs("YYH")
lblYYLX(icount(0)) = rs("JFLX")
lblMLDJ(icount(0)) = rs("FLSM")
lblJJLB(icount(0)) = rs("FLSM")
lblJBDJ(icount(0)) = rs("JBDJ")
lblJFRL(icount(0)) = rs("JFRL")
lblYDXZ(icount(0)) = rs("YDXZ")
lblLTBZ(icount(0)) = rs("LTBZ")
lblLLBZ(icount(0)) = rs("LLBZ")
lblJFBL(icount(0)) = rs("BL")
lblCTBB(icount(0)) = rs("CTBB")
lblPTBB(icount(0)) = rs("PTBB")
lblJLFS(icount(0)) = rs("JLFS")
......
end if
if rs("yyh")=2 then
lblYYH(icount(1)) = rs("YYH")
lblYYLX(icount(1)) = rs("JFLX")
lblMLDJ(icount(1)) = rs("FLSM")
lblJJLB(icount(1)) = rs("FLSM")
lblJBDJ(icount(1)) = rs("JBDJ")
lblJFRL(icount(1)) = rs("JFRL")
lblYDXZ(icount(1)) = rs("YDXZ")
lblLTBZ(icount(1)) = rs("LTBZ")
lblLLBZ(icount(1)) = rs("LLBZ")
lblJFBL(icount(1)) = rs("BL")
lblCTBB(icount(1)) = rs("CTBB")
lblPTBB(icount(1)) = rs("PTBB")
lblJLFS(icount(1)) = rs("JLFS")
......
end if
End If
rs.MoveNext
Loop
rs.Close
end sub
Dim frmA As New frmShowDate
Dim frmB As New frmShowDate......Select Case rs("yyh")
Case 1,2:Call ShowData(frmA)
Case 3,4:Call ShowData(frmB)
End Select
......Private Function ShowData(frmData As Object)
With frmData
......
End With
End Function不知道这样可否?
代码是定义什么呀没弄懂,怎么我定义时没有frmShowDate显示呢。
首先添加窗体(类) frmShowDate(名称任意)。然后声明此窗体类的两个实例,
Dim frmA As New frmShowDate(与窗体类的名称相同)
Dim frmB As New frmShowDate
我现在的问题是在一个FORM上分为两半显示数据上半部和下半部
都是放的LABEL,实际上是一LABEL组,我要将查询出的数据分页
显示出来,我查询出数据有多条时我怎样将数据传过去呀?比如:
rs.open"select zhh,yyh from khda_ydd111 where zhh=" & nZHH
语句查询出同一总户有YYH为1,2,3,5四条的数据,我要用同一个
FORM分两页来显示,第一页显示YYH为1,2的数据,点击FORM上的
下一页按钮打开相同的FORM来显示YYH为3,5的数据,YYH的数据最多
只有四条,但号码有可能不连续。
Public Sub 填写页面(nZHH As Long)
Dim rs As New dbRecordset
dim icount(2) as integer
rs.Open "SELECT * FROM KHDA_YDD111 WHERE ZHH=" & nZHH ''此处加一排序
rs.movefirst ''Do While Not rs.EOF
If Not rs.EOF Then
lblYYH(icount(0)) = rs("YYH")
lblYYLX(icount(0)) = rs("JFLX")
lblMLDJ(icount(0)) = rs("FLSM")
lblJJLB(icount(0)) = rs("FLSM")
lblJBDJ(icount(0)) = rs("JBDJ")
lblJFRL(icount(0)) = rs("JFRL")
lblYDXZ(icount(0)) = rs("YDXZ")
lblLTBZ(icount(0)) = rs("LTBZ")
lblLLBZ(icount(0)) = rs("LLBZ")
lblJFBL(icount(0)) = rs("BL")
lblCTBB(icount(0)) = rs("CTBB")
lblPTBB(icount(0)) = rs("PTBB")
lblJLFS(icount(0)) = rs("JLFS")
......
rs.MoveNext
If Not rs.EOF Then
lblYYH(icount(1)) = rs("YYH")
lblYYLX(icount(1)) = rs("JFLX")
lblMLDJ(icount(1)) = rs("FLSM")
lblJJLB(icount(1)) = rs("FLSM")
lblJBDJ(icount(1)) = rs("JBDJ")
lblJFRL(icount(1)) = rs("JFRL")
lblYDXZ(icount(1)) = rs("YDXZ")
lblLTBZ(icount(1)) = rs("LTBZ")
lblLLBZ(icount(1)) = rs("LLBZ")
lblJFBL(icount(1)) = rs("BL")
lblCTBB(icount(1)) = rs("CTBB")
lblPTBB(icount(1)) = rs("PTBB")
lblJLFS(icount(1)) = rs("JLFS")
......
end if
End If
''rs.MoveNext
''Loop
rs.Close
end sub
以上为程序初始,下一页按钮的事件代码查询语句相同,向下移动指针判断出第二条纪录,然后,movenext,为新一页的第一条纪录,再movenext,为新一页的第二条纪录。
Private rsData As New dbRecordsetPrivate Sub OpenRs() rsData.Open "SELECT * FROM KHDA_YDD111 WHERE ZHH=" & nZHH ShowData(rsData)End SubPublic Sub ShowData(rsTmp As dbRecordset)
Dim i As Integer '因为知道记录数,可以用固定的循环。
For i=0 to 1
If Not rs.EOF Then
'在Lable上显示数据。
......
End if
rsData.MoveNext
NextEnd SubPrivate Sub cmdNext_Click()
Dim frmNext As New frmShowData
'调用另一个窗体的公用过程显示另外的记录。
'rsData传递过去时,指针应该停留在第三条记录上。
frmNext.ShowData(rsData)
frmNext.Show
End Sub有些地方考虑不周,仅供参考。
Private rsData As New dbRecordsetPrivate Sub OpenRs(nZHH As Long) rsData.Open "SELECT * FROM KHDA_YDD111 WHERE ZHH=" & nZHH ShowData(rsData)End SubPublic Sub ShowData(ByRef rsTmp As dbRecordset)
Dim i As Integer '因为知道记录数,可以用固定的循环。
For i=0 to 1
If Not rsTmp.EOF Then
'在Lable上显示数据。
......
End if
rsTmp.MoveNext
NextEnd SubPrivate Sub cmdNext_Click()
Dim frmNext As New frmShowData
'调用另一个窗体的公用过程显示另外的记录。
'rsData传递过去时,指针应该停留在第三条记录上。
frmNext.ShowData(rsData)
frmNext.Show
End Sub有些地方考虑不周,仅供参考。
多次帮助。现在还有个问题,如果是不止四条记录该怎么做呢?
传值时老是说类型不匹配等问题,我把我原来的程序中的循环去掉了,然后一个一个
地写,每次写两个记录,这样来实现的,但我想到如果这样做大于四条记录就不好做
了,因为我是movenext到第三条记录时再写,写完屏蔽下一页按钮,如果不屏蔽的话
继续点击按钮还是会打开第三条和第四条记录。总之还是谢谢大家。