当前位置:编程学习 > VB >>

请问该如何实现这种功能呢?

问题一:该如何让 username 这个行的高变得更高一点呢? 


问题二: 如果想让本翻页功能增加如果到1页,那么“上一页”就变成为灰色,如果是最后一页,那么"下一页"就变成灰色,请问该如何写代码?我想写成以下的,但是不行,就屏蔽了。 

    '测试未通过。 
    'If lPage = 1 Then 
    '  cmdPrevious.Enabled = True 
    ' End If 
    
    ' If lPage = adoPrimaryRS.PageCount Then 
    '  cmdNext.Enabled = False 
    ' End If 

问题三:如果这种方式写翻页,会出现翻到最后一页时,再往下翻就会提示:"bof" 或者 "eof" 中有一个为真,或者当前的记录已经删除,所需的操作要求一个当前的记录,请问该如何改进呢? 


------------------------------ 以下是全部代码 ------------------ 

Option Explicit 

Dim conn As ADODB.Connection 

Dim lCurrentPage As Long 

Private Sub cmdNext_Click() 

    lCurrentPage = lCurrentPage + 1 

    Call Loadcontrol(lCurrentPage) 

End Sub 

Private Sub cmdPrevious_Click() 

    If lCurrentPage > 1 Then 

        lCurrentPage = lCurrentPage - 1 

        Call Loadcontrol(lCurrentPage) 

    End If 

End Sub 


Private Sub Form_Load() 

    Set conn = New ADODB.Connection 

    conn.CursorLocation = adUseClient 

    conn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "../../DBbase/Admin.mdb;" 

    lCurrentPage = 1 

    Call Loadcontrol(lCurrentPage) 

End Sub 

Private Sub Loadcontrol(lPage As Long) 

    Dim adoPrimaryRS As ADODB.Recordset 

    Dim lPageCount As Long 

    Dim nPageSize As Integer 

    Dim lCount As Long 
    
  
    '每页显示的纪录 

    nPageSize = 10 

    Set adoPrimaryRS = New ADODB.Recordset 

    adoPrimaryRS.Open "select [username],[position],Depot,tel,mobile,email from message ", conn, adOpenStatic, adLockOptimistic 

    adoPrimaryRS.PageSize = nPageSize 

    '页数 

    lPageCount = adoPrimaryRS.PageCount 

    If lCurrentPage > lPageCount Then 

        lCurrentPage = lPageCount 

    End If 

    

    adoPrimaryRS.AbsolutePage = lCurrentPage 

    '定义另一个记录集 

    Dim objrs As New ADODB.Recordset 

    '添加字段名称 

    For lCount = 0 To adoPrimaryRS.Fields.Count - 1 

        objrs.Fields.Append adoPrimaryRS.Fields(lCount).Name, adVarChar, adoPrimaryRS.Fields(lCount).DefinedSize 

    Next lCount 
    
    
    '打开记录集 

    objrs.Open 

    '将指定记录数循环添加到objrs中 

    For lCount = 1 To nPageSize 

        objrs.AddNew 
        objrs!username = adoPrimaryRS!username 
        objrs!position = adoPrimaryRS!position 
        objrs!Depot = adoPrimaryRS!Depot 
        objrs!Tel = adoPrimaryRS!Tel 
        objrs!mobile = adoPrimaryRS!mobile 
        objrs!Email = adoPrimaryRS!Email 
        adoPrimaryRS.MoveNext 

    Next 

    '绑定 

    Set DataGrid1.DataSource = objrs 

    '在文本框显示页数 

    txtPage = lPage & "/" & adoPrimaryRS.PageCount 
    txtPage.Text = txtPage 
    
    
    '测试未通过。 
    'If lPage = 1 Then 
    '  cmdPrevious.Enabled = True 
    ' End If 
    
    ' If lPage = adoPrimaryRS.PageCount Then 
    '    cmdNext.Enabled = False 
    ' End If 

End Sub 


Private Sub Form_Unload(Cancel As Integer) 

    If Not conn Is Nothing Then 

        conn.Close 

    End If 

    Set conn = Nothing 

End Sub 

'文本框中输入页数,回车跳转到指定位置 

Private Sub txtPage_KeyDown(KeyCode As Integer, Shift As Integer) 

    lCurrentPage = Val(txtPage.Text) 
    
    If lCurrentPage < 1 Then lCurrentPage = 1 
    
    If Not IsNumeric(lCurrentPage) Then 
      lCurrentPage = 1 
    End If 

    Call Loadcontrol(lCurrentPage) 

End Sub 
--------------------编程问答-------------------- 设置RowHeight属性,不能针对某列来设置行的高度
Recordset.CursorLocation=adUseClient   '一定要用客户端游标
rs.BOF和rs.EOF来判断记录集是否超出范围
补充:VB ,  网络编程
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,