设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1158|回复: 2
打印 上一主题 下一主题

[与其它组件] 在 access 中实现队列的方法.

[复制链接]
跳转到指定楼层
1#
发表于 2003-5-10 17:47:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面是我在 程序太平洋网站回答透明蟑螂总版主关于在 vb 中如何实现队列的答案.
在 access 中也可以用同样的方式实现,有兴趣的网友可以参考一下:


没办法,在 vb 中实现队列就是麻烦一些
做了一个例子,不知道是不是你所需要的:
'******************************************
'以下为类 clsQueue:
Option Explicit

Public Name As String
Public ID As Long
'******************************************
'以下为类 clsQueues:
Option Explicit

Private mcolQueues As New Collection
Private mlngLastID As Long              '最后一个进入对象的 id(即最大ID)
Private mlngFirstID As Long              '最先一个对象的id(即最小的id)

Public Function Add(Name As String) As clsQueue
    Dim NewQueue As New clsQueue
    NewQueue.Name = Name
    NewQueue.ID = mlngLastID
    mcolQueues.Add NewQueue, LTrim(Str(mlngLastID))
    mlngLastID = mlngLastID + 1
End Function

Public Sub Remove(ID As Long)
    mcolQueues.Remove LTrim(Str(ID))
End Sub

Public Function Item(ID As Long) As clsQueue
    Set Item = mcolQueues.Item(LTrim(Str(ID)))
End Function

Public Function Count() As Long
    Count = mcolQueues.Count
End Function

Public Function Pop() As String
    Dim Queue As clsQueue
    Dim strID As String
    If mcolQueues.Count = 0 Then Exit Function
    strID = LTrim(Str(mlngFirstID))
    Set Queue = mcolQueues.Item(t)
    Pop = Queue.Name
    mcolQueues.Remove LTrim(Str(mlngFirstID))
    mlngFirstID = mlngFirstID + 1
End Function

Public Function NewEnum() As IUnknown
   Set NewEnum = mcolEmployees.[_NewEnum]
End Function
'******************************************
'以下为类 clsGQueue:
Option Explicit

Private mclsQueues As New clsQueues

Public Property Get clsQueues() As clsQueues
    Set clsQueues = mclsQueues
End Property
'**************************
'在窗体或其它模块中这样使用:
声明变量
private Queue as new clsGQueue

加入一个新对象到类中:
queue.clsQueues.Add "...."
取出一个对象(先进行出):
str变量名=queue.clsqueues.Pop

可以使用 for exch 遍历队列(集合)
可以使用 item 方法取出指定 id 的对象,
可以使用 remove 方法删除指定对象,但使用此方法后, pop 方法可能会出问题.
可以使用 count 方法得到集合中总 item 数量.
因为是示例,未加上出错处理部分.并且队列中存储的文本值,你可以按自己的要求更改.

程序太平洋的相应网页:
http://www.5ivb.net/club/dispbbs.asp?boardid=1&id=14962&star=1#36547
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2003-5-10 18:54:00 | 只看该作者
不错不错!!稍加改动功能强大!
3#
发表于 2003-5-11 05:05:00 | 只看该作者
请教各位版主,队列是什么啊,有什么用?要用这么麻烦的类来实现!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-5 11:19 , Processed in 0.098020 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表