设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[与其它组件] [讨论] 用Access做套“一卡通”管理

[复制链接]
跳转到指定楼层
1#
发表于 2006-9-23 22:12:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
                     
      最近有朋友就此问题来电询问,我想不如就这个话题放在这里,一来算着回答,二来抛砖引玉共同讨论共同进步。

     有人评价RFID射频卡技术将是继互联网发明后的又一革命性发明,电子标签的应用必然取代所有物流管理的现存模式。Access是个好用的工具,以前我曾见过有人用Access做过银行柜员机的程序。Access一般中小型管理应用最为合适。去年我用它完成了一套游船酒店管理程序,一年运行过来效果很好,为此把心得推荐给大家,希望有点用。

一. 一卡通应用范围

   “一卡通”就是用RFID射频卡(非接触感应ID卡),配合Access组成各种管理功能的应用系统。使用中在距读卡器几厘米前一晃卡片(远距离的读卡器十几米的都有),读卡器读取ID码传给Access,随后管理系统即可完成相应操作:自动收费、职工考勤、门禁、消费记帐、查询、自动停车收费,校园食堂售饭等,总之你能想到就能做到。不同的管理内容对应不同的的管理程序,各自发挥。这里着重谈卡片应用与Access衔接的相关内容。


二. RFID卡两种类别的应用

    第一是读写卡,卡片有一可重写的数据存储区,每次操作的结果可以刷新写在其中。这种卡片适合用在开放系统中,也就是源数据不在一个网络系统中而是分散在各自卡片里,应用特点是成本较高(每张卡片成本10元左右),数据安全和运行维护较烦。但使用不受网络限制,比如香港的“八达卡”消费系统和各大城市的公共交通卡就是此类。

     第二是只读卡,卡片拥有唯一的ID码,刷卡作为唯一身份标志识别。这种卡片适合用在一个闭合的网络中,也就是数据源存放在网络服务器中,刷卡只是验证身份后在服务器中调出数据。此卡特点是成本较低(每张卡片成本2元左右),由于数据存在服务器中,安全和管理较为方便。使用中受网络限制,一般应用在银行、仓储、酒店中、停车场中,等。

三. 读卡器与Access管理系统的衔接

    读卡器有很多类型区分:按卡片类别有只读与读写之别,还有有高频和低频之分。读取距离一般在十厘米内的常用型与对应长距离读取的专用型。专业的读卡器一般还配有单片机作相应的前端处理再将数据传给电脑。内容较为繁杂这里就不一一赘述了。简而述之:读卡器如何与电脑中的Access系统连接?

   一般常用的连接方式分:电脑串口(232口,其中包括变型的485口和USB口),电脑网络口(TCP/IP协议连接,其中可以使用无线路由)。

四.  用232口连接的一个例子:

1.引用MicroSoft Comm Control 6.0                            '引用mscomm.ocx
2.在窗口中新建mscomm控件——MSComm0

Private Sub Form_Load()                                          '窗体加载
On Error GoTo 错误:
   
    initchk (MSComm0)                                               '调用函数初始化COM端口

错误:
    Select Case err
    Case 3704                                                            '连接已断开
    DisplayMessage "网络已经中断,查明后再试!    "
    Case 3021                                                            '没有新数据
    DisplayMessage "客人资料未建立!请联系前台    "
    Case -2147467259                                               '找不到数据源
    DisplayMessage "网络没开通,检查前台电脑!    "
    Case 8002                                                            '串口没有打开
    DisplayMessage "读卡器COM5端口没有打开!    "
    Case Else
    DisplayMessage "发生突发故障,查明后再试!    "
   End Select
    DoCmd.Close acForm, "酒吧销售"
Resume 退出
End Sub


Public Function initchk(sc As Integer) As Boolean    '读取串口的函数
On Error Resume Next

    If MSComm0.PortOpen Then MSComm0.PortOpen = False
    MSComm0.CommPort = 2                                    '设定串口号,
    MSComm0.Settings = "9600,N,8,1"                      '串口的属性
    MSComm0.InputLen = 0                                       '接收缓冲区的大小
    MSComm0.InputMode = comInputModeBinary     '二进制接受方式
    MSComm0.RThreshold = 7                                  '每7个字节响应消息
    MSComm0.PortOpen = True                                '打开通信串口
   
End Function


Private Sub MSComm0_OnComm()                          '串口的消息响应
On Error Resume Next
    Me.刷卡.SetFocus
Select Case MSComm0.CommEvent                        '串口事件
    Case comEvReceive                                             '接收到数据
    Dim Buffer As Variant              
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-9-24 20:33:00 | 只看该作者
需要得很,此类文章太少,甚至应该开个专栏。和外部设备连接很重要。

[此贴子已经被作者于2006-9-24 12:34:51编辑过]

3#
发表于 2006-11-9 03:42:00 | 只看该作者
非常感谢吴兄提供的代码,你发给我的邮件也已经同时收到。非常谢谢。
4#
发表于 2013-8-13 08:05:29 | 只看该作者
xiexie
回复

使用道具 举报

5#
发表于 2013-11-30 10:44:17 | 只看该作者
xiexi
回复

使用道具 举报

6#
发表于 2013-11-30 22:34:09 | 只看该作者
再看还有收获?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-1 20:36 , Processed in 0.085430 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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