PB 是一个非常好的数据库管理系统的开发工具。它能够处理纷繁复杂的数据、提供优异的报表集成方式,并且具有灵活、友好、方便和快捷等特点,非常适用于不同的数据库管理系统。但是,许多应用程序既包含了复杂的数据处理,又需要进行计算机通信的控制,如门禁系统、点名系统以及接见系统等。这些应用程序中必须使用计算机的串口进行通信,而 PB 没有直接控制计算机串口的控件; 而 VB 中虽然带有串口控件,但是对于习惯使用 PB 的程序员来说,使用 VB 来处理大量复杂数据有时会感到不便。笔者在实际工作中利用 OLE 调用Mscomm.ocx 控件,方便地解决了 PB 中的通信控制问题。 一、解决方法 1.在窗体中新建一OLE 控件,在出现的“Insert Object 属性”窗口中选择“Insert Control Tab”选项卡,在“Control Type”选项中选择“Microsoft Communications Control”选项(如果没有,说明此机器未注册安装此控件,安装注册的具体方法我们将在下面做详细的介绍),点击“OK”按钮后将控件放在窗体中任一位置(因为控件在实际运行时是不可见的,可以任意放置),系统中出现 “Mscomm”控件图标,给此控件命名为“OLE_comm”。 图 1 “OLE Custom Control”对话框 图 2 “Control Properties 属性”对话框 2.控件的属性设置可以在“OLE Custom Control”对话框中的“OLE Control Properties”按钮中进行设置(如图 1 所示),您也可以鼠标右击控件菜单的“OCX Properties”选项,进入“Control Properties 属性”对话框(如图 2 所示)。笔者推荐您最好在程序中使用编码设置,这样更加便于控制。 例如,在窗口 OPEN 事件中编程。 ole_comm.object._CommPort = 1 ole_comm.object.Settings = "57600,n,8,1" ole_comm.object.InputLen = 0 ole_comm.object.InBufferSize = 90 ole_comm.object.OutBufferSize = 60 ole_comm.object.SThreshold = 0 ole_comm.object.RThreshold = 9 ole_comm.object.Handshaking = 0 ole_comm.object.PortOpen = True ole_comm.object.InBufferCount = 0 ole_comm.object.DTREnable = true 其中: CommPort 设置并返回通信端口号。 Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位以及停止位。 InputLen 从接收缓冲区中读取的字符数。设置 InputLen 值为“0”时,使用“Input”将使“MSComm”控件读取接收缓冲区中全部的内容...