专栏首页landv办公用品管理系统VB——模块

办公用品管理系统VB——模块

'DbFunc.bas
'== 标记数据库是否连接 ==
Private IsConnect As Boolean
'== 标记执行Connect()函数后,访问数据库的次数 ==
Private Connect_Num As Integer
Private cnn As ADODB.Connection   '连接数据库的Connection对象
Private rs As ADODB.Recordset     '保存结果集的Recordset对象

'连接数据库
Private Sub Connect()
  '如果连接标记为真,则返回。否则会出错
  If IsConnect = True Then
    Exit Sub
  End If
  
  '关键New用于创建新对象cnn
  Set cnn = New ADODB.Connection
  '设置连接字符串ConnectionString属性
  cnn.ConnectionString = Conn
  '打开到数据库的连接
  cnn.Open
  '判断连接的状态
  If cnn.State <> adStateOpen Then
    '如果连接不成功,则显示提示信息,退出程序
    MsgBox "数据库连接失败"
    End
  End If
  
  '设置连接标记,表示已经连接到数据库
  IsConnect = True
End Sub

'断开与数据库的连接
Private Sub Disconnect()
  Dim Rc As Long
  '如果连接标记为假,标明已经断开连接,则直接返回
  If IsConnect = False Then
    Exit Sub
  End If
  '关闭连接
  cnn.Close
  '释放cnn
  Set cnn = Nothing
  '设置连接标记,表示已经断开与数据库的连接
  IsConnect = False
End Sub

'使用Connect_Num控制数据库连接
Public Sub DB_Connect()
  Connect_Num = Connect_Num + 1
  Connect
End Sub
Public Sub DB_Disconnect()
  If Connect_Num >= CONNECT_LOOP_MAX Then
    Connect_Num = 0
    Disconnect
  End If
End Sub
'强制关闭api方式访问的数据库,计数器复位
Public Sub DBapi_Disconnect()
  Connect_Num = 0
  Disconnect
End Sub

'执行数据库操作语句
Public Sub SQLExt(ByVal TmpSQLstmt As String)
  '创建Command对象cmd
  Dim cmd As New ADODB.Command
  
  '连接到数据库
  DB_Connect
  '设置cmd的ActiveConnection属性,指定与其关联的数据库连接
  Set cmd.ActiveConnection = cnn
  '设置要执行的命令文本
  cmd.CommandText = TmpSQLstmt
 'MsgBox TmpSQLstmt
  '执行命令
   cmd.Execute
  '清空cmd对象
  Set cmd = Nothing
  '断开与数据库的连接
  DB_Disconnect
End Sub

'执行数据库查询语句
Public Function QueryExt(ByVal TmpSQLstmt As String) As ADODB.Recordset
  '创建Recordset对象rst
  Dim rst As New ADODB.Recordset
  
  '连接到数据库
  DB_Connect
  '设置rst的ActiveConnection属性,指定与其关联的数据库连接
  Set rst.ActiveConnection = cnn
  '设置游标类型
  rst.CursorType = adOpenDynamic
  '设置锁定类型
  rst.LockType = adLockOptimistic
  '打开记录集
  rst.Open TmpSQLstmt
  '返回记录集
  Set QueryExt = rst
End Function
'Variable.bas
'保存执行SQL语句的字符串
Public SqlStmt As String
'
'声明类模块变量
Public MyType As New Types     '类型对象
Public MyDep As New Department    '部门对象
Public MyDraw As New Draw      '领用对象
Public MyList As New DrawList  '明细对象
Public MyStore As New Store    '库存对象
Public MyIn As New StoreIn    '入库对象
Public MySupplier As New Supplier     '供应商对象
Public MyUser As New Users
Public CurUser As New Users
'Const.bas
'版本号
Public Const VerNum As String = "版本 1.5"
'生成日期
Public Const GenDate As String = "日期 2018-08-29"
'定义数据库连接字符串
Public Const Conn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Office.mdb;"
 '一次执行connect操作可以访问数据库的次数
Public Const CONNECT_LOOP_MAX = 10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 实现用VB.Net/(C#)开发K/3 BOS 插件的真正可行方法

    landv
  • vb.net_一个半成品

    landv
  • [CodeIgniter4]概述-自动加载文件

    每个应用程序都包含许多位于不同位置的类。该框架提供了用于核心功能的类。您的应用程序将具有许多库,模型和其他实体,以使其正常运行。您可能有项目正在使用的第三方类。...

    landv
  • 使用ORM框架,必须迁就数据库的设计吗?

    我在CSDN发表了一个帖子,发布一款强大的ORM工具--PDF.NET集成开发工具 ,有个朋友caozhy提出了非常尖锐的问题,我对他的问题做了回答,现在觉得他...

    用户1177503
  • Pandas进阶之数据规整化

    ---- 概述 在Pandas基本使用简单了介绍了一下Pandas的基本使用和用法,大家如果没有一点基础的同学可以先看一下那篇文章。今天我们来讲解一下Panda...

    BrianLv
  • 《利用Python进行数据分析·第2版》第7章 数据清洗和准备7.1 处理缺失数据7.2 数据转换7.3 字符串操作7.4 总结

    在数据分析和建模的过程中,相当多的时间要用在数据准备上:加载、清理、转换以及重塑。这些工作会占到分析师时间的80%或更多。有时,存储在文件和数据库中的数据的格式...

    SeanCheney
  • 如何在 Highcharts 图中当所占百分比为 0 时不显示0%

    祈澈菇凉
  • Pandas中文官档~基础用法6

    大多数情况下,pandas 使用 Numpy 数组、Series 或 DataFrame 里某列的数据类型。Numpy 支持 float、int、bool、ti...

    1480
  • 制式刻板的教育, 成了敏捷开发最大的绊脚石

    从小所接受的教育,只讲求「正确答案」,长大之后也只会「理盲」的在敏捷开发中找「正确答案」。将敏捷开发变为一「正确答案的流程样板活动」,而永远无法在敏捷开发中,以...

    Ken Fang 方俊贤
  • 计算机_01_常用快捷键

             Windows+L   : 锁(look)    屏               

    shirayner

扫码关注云+社区

领取腾讯云代金券