Here what have i modified:

Code:
Private Sub ShowPage()

Dim intRecord As Integer
Dim lvwItem As ListItem
    
        rs.AbsolutePage = intPage
        lvwRSPageDemo.ListItems.Clear
        For intRecord = 1 To rs.PageSize
            'If Not (rs.BOF = True Or rs.EOF = True) Then
            If (rs.Fields("Tid") <> "") Then
                Set lvwItem = lvwRSPageDemo.ListItems.Add(, , rs.Fields.Item("Tid").Value)
                
            Else
                Set lvwItem = lvwRSPageDemo.ListItems.Add(, , rs.Fields.Item("PROGRAMME.Pid").Value)
            End If
            
            lvwItem.SubItems(1) = rs.Fields.Item("ProgrammeName")
            If (rs.Fields("CTitle") <> "") Then
                lvwItem.SubItems(2) = rs.Fields.Item("CTitle").Value
                lvwItem.SubItems(3) = rs.Fields.Item("CModule").Value
            End If
            
            If (rs.Fields("TName") = "") Then
                lvwItem.SubItems(4) = ""
            End If
            
            If (rs.Fields("TName") <> "") Then
                lvwItem.SubItems(4) = rs.Fields.Item("TName").Value
            End If
            
            If (rs.Fields("Tid") = "") Then
                lvwItem.SubItems(5) = ""
            End If
            
            If (rs.Fields("Tid") <> "") Then
                lvwItem.SubItems(5) = rs.Fields.Item("Tid").Value
            End If
            'Else
                'MsgBox "entah"
            'End If
            rs.MoveNext
                If rs.EOF Then Exit For
                    Next intRecord

                    lblPageInfo.Caption = "Page " & intPage & " of " & intPageCount

                    cmdPrev.Enabled = (intPage > 1)
                    cmdFirst.Enabled = (intPage > 1)
                    cmdNext.Enabled = (intPage < intPageCount)
                    cmdLast.Enabled = (intPage < intPageCount)
End Sub
i check to use wheter programme ID or Trainer ID
it work until reach to a detail part:

Code:
Public Sub SearchByName()
    Dim strSQL As String
    MsgBox pid
    MsgBox tid
    Set rs = New ADODB.Recordset
        strSQL = "SELECT * FROM  (PROGRAMME LEFT JOIN TCOURSE ON PROGRAMME.Pid = TCOURSE.Pid) LEFT JOIN TRAINER ON TCOURSE.Cid = TRAINER.Cid WHERE TRAINER.Tid = " & tid & " OR PROGRAMME.Pid = " & pid & ""
        rs.Open strSQL, conn, adOpenKeyset, adLockPessimistic, adCmdText
        fillfields
End Sub
how i want to manipulate the SQL, because when i click the third record, it contain no "tid" then the sql will verify using the Pid, well then sql found the first pid which is a wrong result, because i click the third data. i'm stuck here.

erm, can someone provide me an example or code snippet of how to use tag property in my case? i already google it, nothing usefull found

thank u very much