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

📄 dataform.frm

📁 汽修厂管理软件
💻 FRM
📖 第 1 页 / 共 2 页
字号:
VERSION 5.00
Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.OCX"
Begin VB.Form frmDataControl 
   Caption         =   "数据控件"
   ClientHeight    =   4335
   ClientLeft      =   4575
   ClientTop       =   3255
   ClientWidth     =   7815
   HelpContextID   =   2016122
   Icon            =   "Dataform.frx":0000
   KeyPreview      =   -1  'True
   LinkTopic       =   "Form2"
   ScaleHeight     =   4335
   ScaleWidth      =   7815
   ShowInTaskbar   =   0   'False
   Tag             =   "Recordset"
   Begin VB.PictureBox picButtons 
      Align           =   1  'Align Top
      Appearance      =   0  'Flat
      BorderStyle     =   0  'None
      ForeColor       =   &H80000008&
      Height          =   585
      Left            =   0
      ScaleHeight     =   585
      ScaleWidth      =   7815
      TabIndex        =   0
      Top             =   0
      Width           =   7815
      Begin VB.CommandButton cmdCancelAdd 
         Caption         =   "取消(&A)"
         Height          =   330
         Left            =   0
         MaskColor       =   &H00000000&
         TabIndex        =   13
         Top             =   0
         Visible         =   0   'False
         Width           =   960
      End
      Begin VB.CommandButton cmdRefresh 
         Caption         =   "刷新(&R)"
         Height          =   330
         Left            =   3840
         MaskColor       =   &H00000000&
         TabIndex        =   12
         Top             =   0
         Width           =   960
      End
      Begin VB.CommandButton cmdFind 
         Caption         =   "查找(&F)"
         Height          =   330
         Left            =   2880
         MaskColor       =   &H00000000&
         TabIndex        =   5
         Top             =   0
         Width           =   960
      End
      Begin VB.CommandButton cmdClose 
         Cancel          =   -1  'True
         Caption         =   "关闭(&C)"
         Height          =   330
         Left            =   4800
         MaskColor       =   &H00000000&
         TabIndex        =   4
         Top             =   0
         Width           =   960
      End
      Begin VB.CommandButton cmdDelete 
         Caption         =   "删除(&D)"
         Height          =   330
         Left            =   1920
         MaskColor       =   &H00000000&
         TabIndex        =   3
         Top             =   0
         Width           =   960
      End
      Begin VB.CommandButton cmdAdd 
         Caption         =   "添加(&A)"
         Height          =   330
         Left            =   0
         MaskColor       =   &H00000000&
         TabIndex        =   2
         Top             =   0
         Width           =   960
      End
      Begin VB.CommandButton cmdUpdate 
         Caption         =   "更新(&U)"
         Height          =   330
         Left            =   960
         MaskColor       =   &H00000000&
         TabIndex        =   1
         Top             =   0
         Width           =   960
      End
   End
   Begin VB.Data datDataCtl 
      Align           =   2  'Align Bottom
      Connect         =   "Access"
      DatabaseName    =   ""
      DefaultCursorType=   0  '缺省游标
      DefaultType     =   2  '使用 ODBC
      Exclusive       =   0   'False
      Height          =   345
      Left            =   0
      Options         =   0
      ReadOnly        =   0   'False
      RecordsetType   =   1  'Dynaset
      RecordSource    =   ""
      Tag             =   "OLE"
      Top             =   3990
      Width           =   7815
   End
   Begin VB.VScrollBar vsbScrollBar 
      Height          =   2440
      LargeChange     =   3000
      Left            =   7560
      SmallChange     =   300
      TabIndex        =   11
      Top             =   360
      Visible         =   0   'False
      Width           =   255
   End
   Begin VB.PictureBox picFields 
      Appearance      =   0  'Flat
      BorderStyle     =   0  'None
      ForeColor       =   &H80000008&
      Height          =   1665
      Left            =   240
      ScaleHeight     =   1651.678
      ScaleMode       =   0  'User
      ScaleWidth      =   5201.759
      TabIndex        =   6
      TabStop         =   0   'False
      Top             =   480
      Width           =   5205
      Begin VB.ComboBox CombFieldData 
         DataSource      =   "datDataCtl"
         Height          =   300
         Index           =   0
         Left            =   1680
         TabIndex        =   14
         Top             =   1320
         Visible         =   0   'False
         Width           =   2895
      End
      Begin VB.TextBox txtFieldData 
         DataSource      =   "datDataCtl"
         ForeColor       =   &H00000000&
         Height          =   285
         Index           =   0
         Left            =   1665
         TabIndex        =   9
         Top             =   120
         Visible         =   0   'False
         Width           =   3240
      End
      Begin VB.CheckBox chkFieldData 
         DataSource      =   "datDataCtl"
         Height          =   282
         Index           =   0
         Left            =   1560
         MaskColor       =   &H00000000&
         TabIndex        =   8
         Top             =   960
         Visible         =   0   'False
         Width           =   3270
      End
      Begin VB.PictureBox picFieldData 
         BackColor       =   &H80000005&
         DataSource      =   "datDataCtl"
         Height          =   285
         Index           =   0
         Left            =   1680
         ScaleHeight     =   225
         ScaleWidth      =   3195
         TabIndex        =   7
         Top             =   600
         Visible         =   0   'False
         Width           =   3255
      End
      Begin VB.Label lblFieldName 
         ForeColor       =   &H00000000&
         Height          =   195
         Index           =   0
         Left            =   105
         TabIndex        =   10
         Top             =   0
         Visible         =   0   'False
         Width           =   300
      End
   End
   Begin MSComDlg.CommonDialog dlgCMD1 
      Left            =   1800
      Top             =   2640
      _ExtentX        =   847
      _ExtentY        =   847
      _Version        =   393216
      FilterIndex     =   1019
      FontSize        =   1.74012e-39
   End
End
Attribute VB_Name = "frmDataControl"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
'>>>>>>>>>>>>>>>>>>>>>>>>
Const BUTTON1 = "取消(&C)"
Const BUTTON2 = "更新(&U)"
Const BUTTON3 = "删除(&D)"
Const BUTTON4 = "查找(&F)"
Const BUTTON5 = "刷新(&R)"
Const BUTTON6 = "关闭(&C)"
Const BUTTON7 = "添加(&A)"
Const Label1 = "字段名称:"
Const Label2 = "值:"
Const MSG1 = "新记录"
Const MSG2 = "选择要加载的图片文件"
Const MSG3 = "数据错误事件在 Err 中:"
Const MSG4 = "保存新记录吗?"
Const MSG5 = "提交改变吗?"
Const MSG6 = "关闭前提交改变吗?"
Const MSG7 = "删除当前记录吗?"
Const MSG8 = "输入搜索值:"
Const MSG9 = "输入搜索表达式:"
Const MSG10 = " 行"
Const MSG11 = " 行(仅向前记录集)"
Const MSG12 = " [不可更新]"
Const MSG13 = "对于参数化查询此功能不可用! "
'>>>>>>>>>>>>>>>>>>>>>>>>

'============================================================================
' 这是一个非常通用的窗体,它可以用于大多数情况下的任何 table 或 querydef。
'============================================================================

Dim maFldArr() As Object
Public mrsFormRecordset As Recordset
Public mbIsParameterized As Boolean
Dim mvBookMark As Variant        '窗体书签
Dim mnNumFields As Integer       '字段数
Dim mlNumRows As Long            '记录集的记录计数器
Dim mbJustUsedFind As Boolean    '查找函数的标志
Dim mbResizing As Boolean        '防止改变尺寸时产生递归的标志
Dim mbCancel As Boolean          '标志为取消添加新的
Dim mnFieldTop As Integer        '顶端字段位置

Const mnMSGBOX_TYPE = vbYesNo + vbQuestion
Const mnCTLARRAYHEIGHT = 340

Private Sub cmdAdd_Click()
 ' On Error GoTo AddErr

  datDataCtl.Recordset.AddNew
  datDataCtl.Caption = MSG1
  cmdCancelAdd.Visible = True
  cmdAdd.Visible = False
  If datDataCtl.Recordset.RecordCount <> 0 Then
    mvBookMark = datDataCtl.Recordset.Bookmark
    If maFldArr(0).Enabled = True Then
      maFldArr(0).SetFocus
     Else
      maFldArr(1).SetFocus
    End If
  End If

  Exit Sub
  
AddErr:
  ShowErrMsg

End Sub

Private Sub cmdCancelAdd_Click()
  On Error Resume Next

  mbCancel = True
  '回到当前记录前一个记录
  If Len(mvBookMark) > 0 Then
    datDataCtl.Recordset.Bookmark = mvBookMark
  End If

End Sub

'----------------------------------------------------------
'这个子程序加载 Data 控件的属性页
'单独使用时,将其注释掉
'----------------------------------------------------------
'Sub datDataCtl_MouseUp(BUTTON As Integer, Shift As Integer, x As Single, y As Single)
 ' On Error GoTo DCPErr

  'Dim i As Integer
 ' Dim recClone As Recordset
 ' Dim sTmpRS As String
 ' Dim sTmpDB As String
  'Dim sTmpTag As String
  
  'If BUTTON = 2 Then
   ' If mbIsParameterized Then
    '  MsgBox MSG13, vbInformation
     ' Exit Sub
    'End If
  
    'Screen.MousePointer = vbHourglass
    'sTmpRS = datDataCtl.RecordSource
    'sTmpDB = datDataCtl.DatabaseName
    'sTmpTag = datDataCtl.Tag
    'Set gDataCtlObj = datDataCtl
    'frmDataCtlProp.Show vbModal
    'If Not gDataCtlObj Is Nothing Then
      '检查改变的记录集、数据库或绑定的二进制类型
      '并且如果有改变的话,清除绑定的字段
     ' If (sTmpRS <> gDataCtlObj.RecordSource Or sTmpDB <> gDataCtlObj.DatabaseName) _
         Or gDataCtlObj.Tag <> sTmpTag Then
        '清除字段名称并将控件解除绑定
      '  For i = 0 To mnNumFields - 1
       '   lblFieldName(i).Caption = vbNullString
        '  maFldArr(i).DataField = vbNullString
         ' maFldArr(i).Visible = False
        'Next
      'End If
     ' datDataCtl.Refresh
      'If (sTmpRS <> gDataCtlObj.RecordSource Or sTmpDB <> gDataCtlObj.DatabaseName) _
         Or gDataCtlObj.Tag <> sTmpTag Then
  '      Set recClone = datDataCtl.Recordset.Clone()
   '     If recClone.BOF = False And (datDataCtl.Options And dbForwardOnly) = 0 Then
    '      recClone.MoveLast
     '     mlNumRows = recClone.RecordCount
      '  Else
       '   mlNumRows = 0
'        End If
 '       recClone.Close
  '      LoadFields
   '     SetRecNum
    '  Else
        '需要刷新本地记录集拷贝用于其他操作,
        '诸如用它来访问属性的操作
     '   Set mrsFormRecordset = datDataCtl.Recordset
        '如果是仅向前类型的记录集,需要调用 SetRecNum
        '来显示正确的 data 控件标题
      '  If (datDataCtl.Options And dbForwardOnly) = dbForwardOnly Then
       '   SetRecNum
'        End If
 '     End If
  '    gbSettingDataCtl = False
   '   If gDataCtlObj.Tag <> sTmpTag Then
    '    Form_Resize    '需要对新加载的控件设置 left 属性
     ' End If
'    End If
    
Private Sub Form_Unload(Cancel As Integer)
 On Error GoTo EHand
  mrsFormRecordset.Close
  Exit Sub
EHand:
 ShowErrMsg
End Sub

 ' End If
  'Exit Sub
  
'DCPErr:
 ' ShowError
  'Unload Me
'End Sub

'Private Sub Form_Unload(Cancel As Integer)
 ' DBEngine.Idle dbFreeLocks
'End Sub


Private Sub txtFieldData_KeyPress(Index As Integer, KeyAscii As Integer)
  '按回车后,转向下一个字段
  If KeyAscii = 13 Then
    KeyAscii = 0
    SendKeys "{Tab}"
  End If
End Sub

Private Sub picFieldData_Click(Index As Integer)
  '这将控制 picture 控件的大小
  '因此它可能能看见也可能压缩了
  If picFieldData(Index).Height <= 280 Then
    picFieldData(Index).AutoSize = True
  Else
    picFieldData(Index).AutoSize = False
    picFieldData(Index).Height = 280
  End If
End Sub

Private Sub picFieldData_DblClick(Index As Integer)
  On Error GoTo PicErr

  With dlgCMD1
    .Filter = "位图(*.bmp)|*.bmp|图标(*.ico)|*.ico|元文件(*.wmf)|*.wmf|所有文件(*.*)|*.*"
    .DialogTitle = MSG2
    .FilterIndex = 1
    .ShowOpen
  
    If Len(.FileName) > 0 Then
      picFieldData(Index).Picture = LoadPicture(.FileName)
    End If
  End With

  Exit Sub
  
PicErr:
  ShowErrMsg
  Exit Sub

End Sub

Private Sub cmdClose_Click()
  On Error Resume Next

    
  'DBSGRG.Close
  'WKSGRG.Close
   Unload Me
End Sub

Private Sub vsbScrollBar_Change()
  Dim nCurrVal As Integer

  nCurrVal = vsbScrollBar
  If (nCurrVal - mnFieldTop) Mod mnCTLARRAYHEIGHT = 0 Then
    picFields.Top = nCurrVal
  Else
    picFields.Top = ((nCurrVal - mnFieldTop) \ mnCTLARRAYHEIGHT) * mnCTLARRAYHEIGHT + mnFieldTop
  End If

End Sub

Private Sub datDataCtl_Error(DataErr As Integer, Response As Integer)
  If DataErr = 481 Then  '忽略坏图片错误
    Response = vbDataErrContinue
  Else
    MsgBox MSG3 & Error(DataErr)
  End If
End Sub

Private Sub datDataCtl_RePosition()
 On Error GoTo RepErr

  Dim sBookMark As String
  Dim recClone As Recordset
  Dim i As Integer
  
  '如果在重置 data 控件,需要跳过这个子程序
  'If gbSettingDataCtl Then Exit Sub
  
  '如果记录集是空的并且也没有处在 AddNew 状态,
  '需要调用 cmdAdd_Click 过程执行一个 AddNew
'  If (datDataCtl.Recordset.RecordCount = 0) And _
 '    (datDataCtl.EditMode <> dbEditAdd) And _
  '    datDataCtl.Recordset.Updatable Then
   ' Call cmdAdd_Click
   ' Exit Sub
'  End If

 ' SetRecNum
'判断是否已经加载
 

Exit Sub
  
RepErr:
 ' ShowErrMsg
 ' Exit Sub

End Sub

Private Sub datDataCtl_Validate(Action As Integer, Save As Integer)
 ' On Error GoTo ValErr

  If mbCancel Then
    Save = False
    mbCancel = False
    Exit Sub
  End If

  '第一次检查添加新记录(addnew)或编辑(edit)记录的变化
  If Action < 5 Then
    If Save Then       '数据被更改
      If datDataCtl.EditMode = dbEditAdd Then
        If MsgBox(MSG4, mnMSGBOX_TYPE) = vbYes Then
          mlNumRows = mlNumRows + 1
        Else
          Save = False
        End If
      Else
        If MsgBox(MSG5, mnMSGBOX_TYPE) <> vbYes Then
          Save = False        '释放改变
        End If
      End If
    End If
  End If

  Select Case Action
    Case vbDataActionMoveFirst
      '什么也不做
    Case vbDataActionMovePrevious
      '什么也不做
    Case vbDataActionMoveNext
      '什么也不做

⌨️ 快捷键说明

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