我在网友提供的代码做了一个分页显示的程序,可就是出不来,请高手指教。有三个按钮:显示(Cmd_View),上页(Cmd_uppage),下页(Cmd_downpage),每页显示23条记录,表格为VsFlexGrid。
Private Sub Form_Load()
page = 1
End Sub
**************************************************************************输入号码完毕后,点击显示
Query_str2 = "select * from po_2 where PONUMBER='" & Trim(Txt_OrderNo.Text) & "'order by PARTNUM"
'**********************************************************************
private sub viewGrid
rs.CursorLocation = adUseClient
rs.Open Query_str2, cn
rs.PageSize = 23
rs.AbsolutePage = page
pagenum = rs.PageCount For i = 1 To rs.PageSize
Grid.TextMatrix(i, 1=i '第1列
Grid.TextMatrix(i, 2) = GB_OKText(rs("PARTNUM")) '第2列
Grid.TextMatrix(i, 3) = GB_OKText(rs("PARTDES2")) '第3列
'Grid.TextMatrix(i, 4) = GB_OKText(rs("")) '第4列
Grid.TextMatrix(i, 5) = GB_OKText(rs("QUANTOP")) '第5列
Grid.TextMatrix(i, 6) = GB_OKText(rs("UNIT")) '第6列
' rs.MoveNext
If rs.EOF Then Exit For
Next i rs.Close
end sub
**************************************************************************
点击上页:
'上一页
rs.Open "select * from po_2 where PONUMBER='" & Trim(Txt_OrderNo.Text) & "'order by PARTNUM", cn
If page = 1 Then
page = 1
' Cmd_FontPage.Enabled = False
Else
page = page - 1
End If
rs.Close
Call View_Grid
'&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&7
下一页
rs.Open "select * from po_2 where PONUMBER='" & Trim(Txt_OrderNo.Text) & "'order by PARTNUM", cn
If page = rs.PageCount Then
page = 1
' Cmd_NextPage.Enabled = False
Else
page = page + 1
End If
rs.Close
Call View_Grid
Private Sub Form_Load()
page = 1
End Sub
**************************************************************************输入号码完毕后,点击显示
Query_str2 = "select * from po_2 where PONUMBER='" & Trim(Txt_OrderNo.Text) & "'order by PARTNUM"
'**********************************************************************
private sub viewGrid
rs.CursorLocation = adUseClient
rs.Open Query_str2, cn
rs.PageSize = 23
rs.AbsolutePage = page
pagenum = rs.PageCount For i = 1 To rs.PageSize
Grid.TextMatrix(i, 1=i '第1列
Grid.TextMatrix(i, 2) = GB_OKText(rs("PARTNUM")) '第2列
Grid.TextMatrix(i, 3) = GB_OKText(rs("PARTDES2")) '第3列
'Grid.TextMatrix(i, 4) = GB_OKText(rs("")) '第4列
Grid.TextMatrix(i, 5) = GB_OKText(rs("QUANTOP")) '第5列
Grid.TextMatrix(i, 6) = GB_OKText(rs("UNIT")) '第6列
' rs.MoveNext
If rs.EOF Then Exit For
Next i rs.Close
end sub
**************************************************************************
点击上页:
'上一页
rs.Open "select * from po_2 where PONUMBER='" & Trim(Txt_OrderNo.Text) & "'order by PARTNUM", cn
If page = 1 Then
page = 1
' Cmd_FontPage.Enabled = False
Else
page = page - 1
End If
rs.Close
Call View_Grid
'&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&7
下一页
rs.Open "select * from po_2 where PONUMBER='" & Trim(Txt_OrderNo.Text) & "'order by PARTNUM", cn
If page = rs.PageCount Then
page = 1
' Cmd_NextPage.Enabled = False
Else
page = page + 1
End If
rs.Close
Call View_Grid
Dim strSql As String
Dim Page As Integer
Dim PageMaxCount As Integer
Dim rs As New ADODB.RecordsetPrivate Sub Form_Load()
Page = 0
strSql = "select * from po_2 where PONUMBER='" & Trim(Txt_OrderNo.Text) & "'order by PARTNUM"
rs.CursorLocation = adUseClient
rs.Open strSql, cn
rs.PageSize = 23
PageMaxCount = rs.PageCount
rs.Close
Set rs = Nothing
strSql = "select Top 23 * from po_2" _
& " where PARTNUM NOT IN (select Top 23 *" & Page & " " & Page & ",PARTNUM,PARTDES2,'',QUANTOP,UNIT" _
& " from po_2" _
& " where PONUMBER='" & Trim(Txt_OrderNo.Text) _
& " order by PARTNUM)" _
& " order by PARTNUM"
End Sub'**********************************************************************
Private Sub viewGrid()
rs.CursorLocation = adUseClient
rs.Open strSql, cn
Set Grid.DataSource = rs
rs.Close
End Sub
'**************************************************************************
'上一页
Page = IIf(Page = 0, 0, Page - 1)
Call View_Grid
'**************************************************************************
'下一页
Page = IIf(Page = PageMaxCount, PageMaxCount, Page + 1)
Call View_Grid
set @SQLStr='SELECT Top '+cast(@每页大小 as varchar)+' * FROM 表 WHERE 主键列 NOT IN (SELECT TOP '+cast(@每页大小*@第几页 as varchar)+' 主键列 from 表 )'
exec(@SQLStr)
declare @SQLStr varchar(8000)
set @SQLStr='SELECT Top '+cast(@每页大小 as varchar)+' * FROM Customers WHERE Customerid NOT IN (SELECT TOP '+cast(@每页大小*@第几页 as varchar)+' Customersid from Customers )'
exec(@SQLStr)
比如:分页SQL SERVER 的NorthWind数据库中的Customers表的第10到20条记录SELECT Top 10 * FROM Customers WHERE Customerid NOT IN (SELECT TOP 20 Customerid from Customers )
'============================
Dim strSql As String
Dim Page As Integer
Dim PageMaxCount As Integer
Dim rs As New ADODB.RecordsetPrivate Sub Form_Load()
strSql = "select 1 from po_2 where PONUMBER='" & Trim(Txt_OrderNo.Text) & "'"
rs.CursorLocation = adUseClient
rs.Open strSql, cn
rs.PageSize = 23
PageMaxCount = rs.PageCount
rs.Close
Page = 0
strSql = "select Top " & 23 * Page & " " & Page & ",PARTNUM,PARTDES2,'',QUANTOP,UNIT from po_2" _
& " where PARTNUM NOT IN (select Top " & 23 * Page & "PARTNUM" _
& " from po_2" _
& " where PONUMBER='" & Trim(Txt_OrderNo.Text) _
& " order by PARTNUM)" _
& " where PONUMBER='" & Trim(Txt_OrderNo.Text) _
& " order by PARTNUM"
rs.Open strSql, cn
End Sub'**********************************************************************
Private Sub viewGrid()
rs.CursorLocation = adUseClient
rs.Open strSql, cn
Set Grid.DataSource = rs
rs.Close
End Sub
'**************************************************************************
'上一页
Page = IIf(Page = 0, 0, Page - 1)
strSql = "select Top " & 23 * Page & " " & Page & ",PARTNUM,PARTDES2,'',QUANTOP,UNIT from po_2" _
& " where PARTNUM NOT IN (select Top " & 23 * Page & "PARTNUM" _
& " from po_2" _
& " where PONUMBER='" & Trim(Txt_OrderNo.Text) _
& " order by PARTNUM)" _
& " where PONUMBER='" & Trim(Txt_OrderNo.Text) _
& " order by PARTNUM"
Call view_Grid
'**************************************************************************
'下一页
Page = IIf(Page = PageMaxCount, PageMaxCount, Page + 1)
strSql = "select Top " & 23 * Page & " " & Page & ",PARTNUM,PARTDES2,'',QUANTOP,UNIT from po_2" _
& " where PARTNUM NOT IN (select Top " & 23 * Page & "PARTNUM" _
& " from po_2" _
& " where PONUMBER='" & Trim(Txt_OrderNo.Text) _
& " order by PARTNUM)" _
& " where PONUMBER='" & Trim(Txt_OrderNo.Text) _
& " order by PARTNUM"
Call view_Grid