Option Compare Database Option Explicit 'version 2.1 Private elements() As String Private tos As Long Public Sub Push(ByVal strItem As String) tos = tos + 1 ReDim Preserve elements(tos) elements(tos) = strItem End Sub Public Function Top() As String If Not isEmpty Then Top = elements(tos) End If End Function Public Function Pop() As String If Not isEmpty Then Pop = elements(tos) tos = tos - 1 End If End Function Public Function isEmpty() As Boolean isEmpty = (tos = 0) End Function Private Sub Class_Initialize() tos = 0 End Sub Public Function DumpInv(Optional cSep = ";") As String Dim i As Long Dim cRes As String cRes = "" If Not isEmpty Then For i = 1 To tos cRes = cRes & elements(i) & cSep Next cRes = Left(cRes, Len(cRes) - 1) End If DumpInv = cRes End Function Public Function Size() As Long Size = tos End Function