⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 modmanage.bas

📁 人事管理系统vb版,用于一般中小企业
💻 BAS
字号:
Attribute VB_Name = "modManage"
Option Explicit

'
'************************************************************
'  Copyright (C), 1998-2004, ZQ Tech. Co., Ltd.
'FileName:   modManage.bas
'Author:          Version:           Date:
'  Description:     // 模块描述
'  Version:         // 版本信息
'  Function List:   // 中心模块,公用过程写在此处
'                          1.备份与恢复功能
'                          2.错误报告
'                          3.启动设置项目
'                          4.关闭程序功能
'                          5.定义公用参数
'    1. -------
'  History:         // 历史修改记录
'      <author>  <time>   <version >   <desc>
'      Amy    96/10/12     1.0     build this moudle
'***********************************************************


'
'备份与恢复------
'Private Const cnstr As String = "Provider=SQLOLEDB.1;Password=****;Persist Security Info=True;" _
'& "User ID=*****;Initial Catalog=master;Data Source=******"
'
'Private DBCn As ADODB.Connection
'
'Private Sub cmdBackup_Click()
'Set DBCn = New ADODB.Connection
'DBCn.Open cnstr
'DBCn.Execute "backup database pubs to disk='d:\pubs_backup.dat'"
'DBCn.Close
'End Sub
'
'Private Sub cmdRestore_Click()
'Set DBCn = New ADODB.Connection
'DBCn.Open cnstr
'DBCn.Execute "restore database pubs from disk='d:\pubs_backup.dat'"
'DBCn.Close
'End Sub

'----------------
'
'Public Const EM_GETLINECOUNT = &HBA
'Public Const EM_GETLINE = &HC4
'Public Const EM_LINEINDEX = &HBB
'Public Const EM_LINELENGTH = &HC1
'Public Const EM_REPLACESEL = &HC2
'Public Const EM_SETSEL = &HB1
'
'Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
'Declare Sub RtlMoveMemory Lib "KERNEL32" (lpvDest As Any, lpvSource As Any, ByVal cbCopy As Long)
'
'
'Private Sub Command1_Click()
'    Dim S As Long, Length As Integer, pos As Long, i As Integer
'    S = SendMessage(RichTextBox1.hwnd, EM_GETLINECOUNT, 0, ByVal 0&)
'    For i = 0 To S
'    pos = SendMessage(RichTextBox1.hwnd, EM_LINEINDEX, i, ByVal 0&)
'    Length = SendMessage(RichTextBox1.hwnd, EM_LINELENGTH, pos, ByVal 0&)
'    SendMessage RichTextBox1.hwnd, EM_SETSEL, pos, ByVal CLng(pos + Length + 1)
'    If i \ 2 = i / 2 Then
'       RichTextBox1.SelColor = vbGreen
'    Else
'       RichTextBox1.SelColor = vbRed
'    End If
'    Next
'End Sub
'
'a = TimeSerial(20, 45, 39)
'b = TimeSerial(20, 45, 40)

'net start mssqlserver ,用SHELL执行


'实现ListView控件的行间隔颜色
'    Dim i As Integer
'    Dim iFontHeight As Long
'    Dim iBarHeight As Integer
'    Dim j As Integer
'    Dim itmX As ListItem
'    Dim ColHead As ColumnHeader
'
'
'
'    '添加一些实验数据
'    For j = 1 To 33
'        Set itmX = ListView1.ListItems.Add()
'        itmX.Text = "This is item number " & CStr(j)
'    Next j
'
'    Me.ScaleMode = vbTwips
'    picGreenbar.ScaleMode = vbTwips
'    picGreenbar.BorderStyle = vbBSNone
'    picGreenbar.AutoRedraw = True
'    picGreenbar.Visible = False
'    picGreenbar.Font = ListView1.Font
'    iFontHeight = picGreenbar.TextHeight("b") + Screen.TwipsPerPixelY
'    iBarHeight = (iFontHeight * 1)
'    picGreenbar.Width = ListView1.Width
'    '======
'    picGreenbar.Height = iBarHeight * 2
'    picGreenbar.ScaleMode = vbUser
'    picGreenbar.ScaleHeight = 2
'    picGreenbar.ScaleWidth = 1
'    'draw the actual bars
'    picGreenbar.Line (0, 0)-(1, 1), vbWhite, BF
'    picGreenbar.Line (0, 1)-(1, 2), RGB(227, 241, 226), BF
'    '======
'    ListView1.PictureAlignment = lvwTile
'    ListView1.Picture = picGreenbar.Image

Public Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
Public Const MAX_PATH = 260
Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Public strCN As String
Public Const MF_BYPOSITION = &H400&
Public gblnLoadError As Boolean '检查启动时是否连接上数据库,flase为未找到错误,true为找到错误
Public adoConn As New ADODB.Connection '与数据库连接相关的参数和属性
Public adoLink As New ADODB.Recordset '主ado,开启后不作改变
Public adoMainLink As New ADODB.Recordset '副ado,跟着程序要求进行重新设置

Public gblnPopedom As Boolean '当前用户权限
Public gstrLink As String '临时连接项
Public gstrNowLink As String '当前使用的连接项
Public nodName As Node '定义结点
Public nodLong(2) As Integer  '结点长度
Public intCount As Integer '临时计数变量
Public strTvwName As String '部门名称
Public blnCbo As Boolean
Public blnLogout As Boolean
Public strTemp(2) As String
Public blnBoot(7) As Boolean '0为空
Public lDocumentCount As Long
Public strString(3) As String
Public blnInfo As Boolean
Public blnAbout As Boolean
Public ricBox  As RichTextBox

Public gstrName As String '当前用户名
Public datLoad  As Date '记录加载的时间
Public LinkIP As String * 16
Public gstrCro As String  '公司名称变量
Public gstrDataUser As String '数据库用户
Public gstrPassword As String '数据库密码
Public gstrProvider As String '数据库驱动
Public gblnPS As Boolean '数据库是否有密码
Public gstrDatabaseName As String '数据库名
Public gintManageCount As Integer  '部门数
Public gintManCount As Integer '员工数量
Public gstrCroLogo As String '商标路径
Public gintPactTest As Integer '试用到期人数
Public gintPactStop As Integer '合同到期人数


Public gintManageTake As Integer '记录当前选中的部门序列号

Public gblnBR As Boolean 'T is come back ,F is backup
Public gblnErrorOut As Boolean 'T:出错 F: 没错
Public gblnAdd As Boolean '作为frmInfo窗体分辨是否进行添加操作
'---hook
Public g_oMenuHook      As cHookingThunk
Public g_oMenuHookImpl  As cMenuHook
Public g_oCurrentMenu   As ctxHookMenu

#If DebugMode Then
Public g_lObjCount          As Long
#End If

'Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
'Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
'Public PrevWndFunc As Long
'Public Const WM_GETTEXT = &HD
'Public Const EM_SETPASSWORDCHAR = &HCC
'Public Const GWL_WNDPROC = (-4)

'精华摘要
'LenB(StrConv("纯VB", vbFromUnicode)) 能读取是否占两个字节的字

'SendKeys "{Home}+{End}"

'***alter table*** --- 修改数据库表结构
'
'alter table database.owner.table_name add column_name char(2) null .....
'sp_help table_name - ---显示表已有特征
'create table table_name (name char(20), age smallint, lname varchar(30))
'insert into table_name select ......... ----- 实现删除列的方法(创建新表)
'alter table table_name drop constraint Stockname_default ---- 删除Stockname的default约束
'
Public Type ENCRYPTCLASS
  Name As String
  Object As Object
  'Homepage As String
End Type

Public EncryptObjects As ENCRYPTCLASS
Public EncryptObjectsCount As Long

Public Const BENCHMARKSIZE = 1000000

Private Declare Sub CopyMem Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

Public Function FileExist(Filename As String) As Boolean

  On Error GoTo errNext
  
  Call FileLen(Filename)
  FileExist = True
  Exit Function
  
errNext:
  Call ErrMsg(Err.Number, Err.Description)
End Function
Public Static Sub GetWord(LongValue As Long, CryptBuffer() As Byte, Offset As Long)

'  Call CopyMem(LongValue, CryptBuffer(Offset), 4)
  
  Dim bb(0 To 3) As Byte
  On Error GoTo errNext
  
  bb(3) = CryptBuffer(Offset)
  bb(2) = CryptBuffer(Offset + 1)
  bb(1) = CryptBuffer(Offset + 2)
  bb(0) = CryptBuffer(Offset + 3)
  Call CopyMem(LongValue, bb(0), 4)
    Exit Sub
  
errNext:
  'Call ErrMsg(Err.Number, Err.Description)
  Err.Clear
  gblnErrorOut = True
End Sub

Public Static Sub PutWord(LongValue As Long, CryptBuffer() As Byte, Offset As Long)

'  Call CopyMem(CryptBuffer(Offset), LongValue, 4)

  Dim bb(0 To 3) As Byte
    On Error GoTo errNext

  Call CopyMem(bb(0), LongValue, 4)
  CryptBuffer(Offset) = bb(3)
  CryptBuffer(Offset + 1) = bb(2)
  CryptBuffer(Offset + 2) = bb(1)
  CryptBuffer(Offset + 3) = bb(0)
  Exit Sub
  
errNext:
  Call ErrMsg(Err.Number, Err.Description)
End Sub
Public Static Function UnsignedAdd(ByVal Data1 As Long, Data2 As Long) As Long
  
  Dim x1(0 To 3) As Byte
  Dim x2(0 To 3) As Byte
  Dim xx(0 To 3) As Byte
  Dim Rest As Long
  Dim Value As Long
  Dim a As Long
  On Error GoTo errNext
  Call CopyMem(x1(0), Data1, 4)
  Call CopyMem(x2(0), Data2, 4)
  
  Rest = 0
  For a = 0 To 3
    Value = CLng(x1(a)) + CLng(x2(a)) + Rest
    xx(a) = Value And 255
    Rest = Value \ 256
  Next
  
  Call CopyMem(UnsignedAdd, xx(0), 4)
  Exit Function
  
errNext:
  Call ErrMsg(Err.Number, Err.Description)
End Function

Public Function UnsignedDel(Data1 As Long, Data2 As Long) As Long

  Dim x1(0 To 3) As Byte
  Dim x2(0 To 3) As Byte
  Dim xx(0 To 3) As Byte
  Dim Rest As Long
  Dim Value As Long
  Dim a As Long
  On Error GoTo errNext
  
  Call CopyMem(x1(0), Data1, 4)
  Call CopyMem(x2(0), Data2, 4)
  Call CopyMem(xx(0), UnsignedDel, 4)
  
  For a = 0 To 3
    Value = CLng(x1(a)) - CLng(x2(a)) - Rest
    If (Value < 0) Then
      Value = Value + 256
      Rest = 1
    Else
      Rest = 0
    End If
    xx(a) = Value
  Next
  
  Call CopyMem(UnsignedDel, xx(0), 4)
  Exit Function
  
errNext:
  Call ErrMsg(Err.Number, Err.Description)
End Function

'Public Function MessageFunc(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
''wMsg:被发送的消息
'      Select Case wMsg
'          Case WM_GETTEXT
'          '发出警告
'            MsgBox "有密码窃取工具在运行,请注意!截取消息:WM_GETTEXT.", vbExclamation, "警告"
'          Case EM_SETPASSWORDCHAR
'            MsgBox "有密码窃取工具在运行,请注意!截取消息:EM_SETPASSWORDCHAR.", vbExclamation, "警告"
'          Case Else
'            MessageFunc = CallWindowProc(PrevWndFunc, hwnd, wMsg, wParam, lParam)
'      End Select
'End Function
'


Public Sub ErrMsg(strNum As String, strDes As String)
    MsgBox "错误号:    " & strNum & vbCrLf & "错误信息:  " & strDes, vbOKOnly + vbCritical, App.Title & "-运行错误"
End Sub

Public Sub Shutdown(Optional ByVal force As Boolean = False) '自定义关闭函数
    Dim lngFrmSum As Long
    On Error Resume Next
    If adoConn.State = adStateOpen Then adoConn.Close
    If adoLink.State = adStateOpen Then adoLink.Close
    If adoMainLink.State = adStateOpen Then adoMainLink.Close
    Set adoConn = Nothing
    Set adoLink = Nothing
    Set adoMainLink = Nothing
    Set ricBox = Nothing
    For lngFrmSum = Forms.Count - 1 To 0 Step -1
        Unload Forms(lngFrmSum)
        If Not force Then
            If Forms.Count > lngFrmSum Then
                Exit Sub
            End If
        End If
    Next lngFrmSum
    If force Or (Forms.Count > 0) Then End
End Sub
Sub DisSysMenu(ByVal hwnd&, ByVal MenuIndex&) '自定义菜单的关闭按钮失效
    Dim SystemMenu&, Res&
    SystemMenu& = GetSystemMenu(hwnd, 0)
    Res& = RemoveMenu(SystemMenu&, MenuIndex&, MF_BYPOSITION)
End Sub

'Public Sub subPosition(strName As String) '保存坐标
'    SaveSetting App.Title, strName, "MainLeft", Me.Left
'    SaveSetting App.Title, strName, "MainTop", Me.Top
'    SaveSetting App.Title, strName, "MainWidth", Me.Width
'    SaveSetting App.Title, strName, "MainHeight", Me.Height
'End Sub

Sub Main() '系统初始化
    If App.PrevInstance Then
        MsgBox ("程序已经运行,不能再次装载。"), vbOKOnly + vbExclamation, App.Title
        End
    End If
    blnInfo = False
    blnAbout = False
    gblnLoadError = False
    gblnBR = False
    gblnErrorOut = False
    gblnPS = False
    gintManageTake = 0
    gstrCro = "公司"
    'gstrLink = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\人力资源.mdb;Persist Security Info=True"
    frmLogin.Show
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -