📄 9-1.frm
字号:
VERSION 5.00
Begin VB.Form frmDemo
Caption = "Data 控件数据访问"
ClientHeight = 1665
ClientLeft = 1110
ClientTop = 345
ClientWidth = 5520
LinkTopic = "Form3"
LockControls = -1 'True
ScaleHeight = 1665
ScaleWidth = 5520
Begin VB.CommandButton cmdClose
Caption = "关闭(&C)"
Height = 300
Left = 4440
TabIndex = 10
Top = 1020
Width = 975
End
Begin VB.CommandButton cmdModify
Caption = "修改(&M)"
Height = 300
Left = 3360
TabIndex = 9
Top = 1020
Width = 975
End
Begin VB.CommandButton cmdRefresh
Caption = "刷新(&R)"
Height = 300
Left = 2280
TabIndex = 8
Top = 1020
Width = 975
End
Begin VB.CommandButton cmdDelete
Caption = "删除(&D)"
Height = 300
Left = 1200
TabIndex = 7
Top = 1020
Width = 975
End
Begin VB.CommandButton cmdAdd
Caption = "添加(&A)"
Height = 300
Left = 120
TabIndex = 6
Top = 1020
Width = 975
End
Begin VB.Data Data1
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 = "Demo"
Top = 1320
Width = 5520
End
Begin VB.TextBox txtFields
DataSource = "Data1"
Height = 285
Index = 2
Left = 1200
TabIndex = 5
Top = 680
Width = 1095
End
Begin VB.TextBox txtFields
DataSource = "Data1"
Height = 285
Index = 1
Left = 1200
MaxLength = 2
TabIndex = 3
Top = 360
Width = 4215
End
Begin VB.TextBox txtFields
DataSource = "Data1"
Height = 285
Index = 0
Left = 1200
MaxLength = 50
TabIndex = 1
Top = 40
Width = 4215
End
Begin VB.Label lblLabels
Caption = "年龄:"
Height = 255
Index = 2
Left = 120
TabIndex = 4
Top = 705
Width = 855
End
Begin VB.Label lblLabels
Caption = "性别:"
Height = 255
Index = 1
Left = 120
TabIndex = 2
Top = 375
Width = 855
End
Begin VB.Label lblLabels
Caption = "姓名:"
Height = 255
Index = 0
Left = 120
TabIndex = 0
Top = 60
Width = 855
End
End
Attribute VB_Name = "frmDemo"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Dim Modify As Boolean
Private Sub cmdAdd_Click()
Data1.Recordset.AddNew '增加记录
Modify = True '设置修改标志
'设置按钮状态与显示
cmdAdd.Enabled = False
cmdDelete.Enabled = False
cmdRefresh.Enabled = False
cmdModify.Caption = "确定"
cmdClose.Caption = "取消"
Data1.Enabled = False '禁止Data1操作
End Sub
Private Sub cmdDelete_Click()
'如果删除记录集的最后一条记录
'记录或记录集中唯一的记录
'必须做特殊处理
Data1.Recordset.Delete
Data1.Recordset.MoveNext
End Sub
Private Sub cmdRefresh_Click()
'这仅对多用户应用程序才是需要的
'由于多用户程序中将会有其他用户操作该表
'该方法将同步数据库与本程序数据
Data1.Refresh
End Sub
Private Sub cmdModify_Click()
If Modify Then
'结束数据记录修改并保存修改
Modify = False '禁止修改标志
'恢复按钮状态与显示
cmdAdd.Enabled = True
cmdDelete.Enabled = True
cmdRefresh.Enabled = True
cmdModify.Caption = "修改(&M)"
cmdClose.Caption = "关闭(&C)"
Data1.Enabled = True '恢复Data1状态
Data1.Recordset.Update '保存修改
Data1.Recordset.Bookmark = Data1.Recordset.LastModified '记录修改位置
Else
'进入数据记录修改
Modify = True '设置修改标志
'设置按钮状态与显示
cmdAdd.Enabled = False
cmdDelete.Enabled = False
cmdRefresh.Enabled = False
cmdModify.Caption = "确定"
cmdClose.Caption = "取消"
Data1.Enabled = False '禁止Data1操作
Data1.Recordset.Edit '设置修改状态
End If
End Sub
Private Sub cmdClose_Click()
If Modify Then
'数据修改状态
Modify = False '禁止修改标志
'恢复按钮状态与显示
cmdAdd.Enabled = True
cmdDelete.Enabled = True
cmdRefresh.Enabled = True
cmdModify.Caption = "修改(&M)"
cmdClose.Caption = "关闭(&C)"
Data1.Enabled = True '恢复Data1状态
Data1.Recordset.CancelUpdate '放弃数据修改
Else
Unload Me
End If
End Sub
Private Sub Data1_Error(DataErr As Integer, Response As Integer)
'这就是放置错误处理代码的地方
'如果想忽略错误,注释掉下一行代码
'如果想捕捉错误,在这里添加错误处理代码
MsgBox "数据错误事件命中错误:" & Error(DataErr)
Response = 0 '忽略错误
End Sub
Private Sub Data1_Reposition()
Screen.MousePointer = vbDefault
On Error Resume Next
'这将显示当前记录位置
'为动态集和快照
Data1.Caption = "记录:" & (Data1.Recordset.AbsolutePosition + 1)
'对于 Table 对象,当记录集创建后并使用下面的行时,
'必须设置 Index 属性
'Data1.Caption = "记录:" & (Data1.Recordset.RecordCount * (Data1.Recordset.PercentPosition * 0.01)) + 1
End Sub
Private Sub Data1_Validate(Action As Integer, Save As Integer)
'这是放置验证代码的地方
'当下面的动作发生时,调用这个事件
Select Case Action
Case vbDataActionMoveFirst
Case vbDataActionMovePrevious
Case vbDataActionMoveNext
Case vbDataActionMoveLast
Case vbDataActionAddNew
Case vbDataActionUpdate
Case vbDataActionDelete
Case vbDataActionFind
Case vbDataActionBookmark
Case vbDataActionClose
End Select
Screen.MousePointer = vbHourglass
End Sub
Private Sub Form_Load()
Data1.DatabaseName = App.Path + "\9.mdb" '设置数据库文件
'设置文本框对应的数据字段
'该属性可动态设置,但对于Data(和RemoteData)控件,
'DataSource属性必须设计时(在属性窗口中)设置
txtFields(0).DataField = "姓名" '
txtFields(1).DataField = "性别"
txtFields(2).DataField = "年龄"
End Sub
Private Sub txtFields_Change(Index As Integer)
If Not Modify Then
'系统禁止用户修改数据
'DataChanged属性可以设置(禁止)数据库更新
txtFields(Index).DataChanged = False '取消修改
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -