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

请问如何改变DataGrid1中的标题?



问题一: 想将上面的英文字母如 username改为 “姓名”,position 改为“职位”?我试了用“DataGrid1.Tables(0).Columns(0).ColumnName  =  "姓名" p 这种就不行?
问题二: 如果想让本翻页功能增加如果到1页,那么“上一页”就变成为灰色,如果是最后一页,那么"下一页"就变成灰色,请问该如何写代码?我想写成以下的,但是不行,就屏蔽了。

    '测试未通过。
    'If lPage = 1 Then
    '   cmdPrevious.Enabled = True
    ' End If
    
    ' If lPage = adoPrimaryRS.PageCount Then
    '   cmdNext.Enabled = False
    ' End If
------------------------------ 以下是全部代码 ------------------

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


--------------------编程问答-------------------- 问题三:该如何让 username 这个行的高变得更高一点呢? --------------------编程问答-------------------- 问题四:如果这种方式写翻页,会出现翻到最后一页时,再往下翻就会提示:"bof" 或者 "eof" 中有一个为真,或者当前的记录已经删除,所需的操作要求一个当前的记录,请问该如何改进呢?
补充:VB ,  数据库(包含打印,安装,报表)
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,