Dim rsColor As New ADODB.Recordset
    Dim lbl As String
    rsColor.CursorLocation = adUseClient
    rsColor.Open "select row,line from vPAC where cabname = '" & cboCabname & "'", cnnCabinet, adOpenForwardOnly, adLockReadOnly
    If rsColor.eof And rsColor.BOF Then Exit Sub
    While Not rsColor.eof
        lbl = lbl & rsColor!Row & rsColor!Line
        lbl.BackColor = &HFF
    Wend
    Exit Sub
    rsColor.Close
我把lable的名字都取名为lbl11,lbl23类似于这样的
现在想随着数据库中row,line的不同而使那个lable.backcolor改变色彩
比方说:row = 2,line = 3
那么我想要的是lbl23.backcolor = &HFF(红色)
在上面我把lbl定义为string和object都有错误提示
小弟不知道怎么解决还请大虾们赐教
祝各位端午节快乐

解决方案 »

  1.   

    Dim rsColor As New ADODB.Recordset
        Dim lbl As String
        rsColor.CursorLocation = adUseClient
        rsColor.Open "select row,line from vPAC where cabname = '" & cboCabname & "'", cnnCabinet, adOpenForwardOnly, adLockReadOnly
        If rsColor.eof And rsColor.BOF Then Exit Sub
        While Not rsColor.eof
            lbl = lbl & rsColor!Row & rsColor!Line
            Me.Controls(lbl).BackColor = &HFF
            rsColor.
        Wend
        Exit Sub
        rsColor.Close
      

  2.   

    根据上面大虾的方法我终于知道了
    但现在又有一个新的问题
    lbl = "lbl"
    lbl = lbl & str(rscolor!row) & str(rscolor!line)
    me.controls(lbl).backcolor = &HFF
    这样写下来lbl得到的返回值是lbl 2 3而不是lbl23
    系统就会提示 controls("lbl 2 3")not found
    那现在我要怎样写才可以让lbl 2 3成为lbl23呢
    trim(lbl)是不管用的