Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
Public Function basRtnLnkLst(Optional StItem As Variant = "Head", _
Optional TheOrder As Variant = "Asc") As String
'Michael L. Red 8/7/02
'Demo retrievial of Linked List from Table
'Sample Usage
'? basrtnlnklst()
'EqAb , EqQq, EqZz, EqPl
'? basRtnLnkLst("Tail")
'EqPl , EqZz, EqQq, EqAb
'? basRtnLnkLst("EqZZ")
'EqZz , EqPl
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim qdf As QueryDef
Dim strSql(1) As String
Dim MyItem As String
Dim MyOrder
Dim MyNext As String
Dim MyCSVList As String
Set dbs = CurrentDb
MyItem = StItem
strSql(0) = "Select EquipId, Pred, Suces from tblLinkedList "
Select Case MyItem
Case Is = "Head"
strSql(1) = strSql(0) & "Where [Pred] = " & Chr(34) & MyItem & Chr(34) & ";"
MyOrder = "Asc"
Case Is = "Tail"
strSql(1) = strSql(0) & "Where [Suces] = " & Chr(34) & MyItem & Chr(34) & ";"
MyOrder = "Dec"
Case Else
strSql(1) = strSql(0) & "Where [EquipId] = " & Chr(34) & MyItem & Chr(34) & ";"
MyOrder = TheOrder
End Select
Set qdf = dbs.QueryDefs("qdfTemp")
qdf.SQL = strSql(1)
Set rst = dbs.OpenRecordset("qdfTemp")
MyCSVList = rst!EquipId 'First Item
MyNext = ""
While MyNext <> "Head" And MyNext <> "Tail"
Select Case MyOrder
Case Is = "Asc"
MyNext = rst!Suces
Case Is = "Dec"
MyNext = rst!Pred
End Select
strSql(1) = strSql(0) & "Where EquipId = " & Chr(34) & MyNext & Chr(34) & ";"
Set rst = Nothing
qdf.SQL = strSql(1)
Set rst = dbs.OpenRecordset("qdfTemp")
If (rst.BOF <> True Or rst.EOF <> True) Then
MyCSVList = MyCSVList & ", " & rst!EquipId 'Next Item
End If
Wend
basRtnLnkLst = MyCSVList
End Function