access中如何用命令按钮让窗体里的记录在可编辑和不可编辑之间切换?
使用this.Enabled = false。
可以使用this.Enabled = false;是窗体处于不可编辑状态。
使用showDialog(),showDialog()是一个对话框窗口界面```执行结果以新窗口界面出现```不允许进行后台运行```就是你想编辑什么的时候```非得先关闭showDialog()窗口界面才可以进行其他操作。
在数据库中保存的信息以表的形式存储,其中包含有关特定主题的数据,例如资产或联系人。表中的每条记录包含有关某个项目(如特定联系人)的信息。记录由字段(如姓名、地址和电话号码)组成。记录和字段通常也分别称作行和列。
Microsoft Office Access 2007 允许您直接在数据表视图中添加、编辑或删除表中的记录。如果您设计并创建了选择查询,则可直接在通过运行查询而产生的数据表中查看并经常编辑记录。还可以创建基于任何表或查询的窗体,然后使用该窗体来添加或编辑记录。
就是让窗体里的记录默认处于不可编辑状态,添加一个“编辑”按钮,点按钮后记录变为可编辑状态,这时“编辑”按钮自动变成“保存”按钮,再次点击后记录又变成不可编辑状态。
我主要是为了防止误操作
我找到一个代码
Private Sub command13_Click()
If Me![command13].Caption = "编辑" Then
Me.AllowAdditions = True '允许添加
Me.AllowDeletions = True '允许删除
Me.AllowEdits = True '允许编辑
Me![command13].Caption = "检视"
ElseIf Me![command13].Caption = "检视" Then
Me.AllowAdditions = False '不允许添加
Me.AllowDeletions = False '不允许删除
Me.AllowEdits = False '不允许编辑
Me![command13].Caption = "编辑"
End If
End Sub
我看这个代码给的示例可以实现,就照着弄了一下,按钮文字可以变换,可为什么不起实际作用窗体中的记录仍然可以编辑?
会不会是按钮在主窗体上,不在子窗体上的缘故?
假定,窗体上有一个文本框text1,一个命令按钮command1,在窗体顶端设置一个模块级变量(私有变量)flag用来标志command1按钮的状态。
Option Compare Database
Private flag As Boolean ‘设置私有变量flag,用来标志command1按钮的状态
Private Sub Form_Open(Cancel As Integer) ‘打开窗体时,
Me.Text1.Locked = True ‘设置text1文本框锁定,
Me.Command1.Caption = "编辑" ‘设置command1按钮标题为 编辑
End Sub
Private Sub Command1_Click()
If flag Then ‘第一次单击时,flag没有赋值,默认为0,即false
Me.Text1.Locked = True
Me.Command1.Caption = "编辑"
Else
Me.Text1.Locked = False
Me.Command1.Caption = "保存"
End If
flag = Not flag ‘每次单击时,变换flag的取值
End Sub
基本原理就这样,关键是设置一个模块级变量flag。
假定,窗体上有一个文本框text1,一个命令按钮command1,在窗体顶端设置一个模块级变量(私有变量)flag用来标志command1按钮的状态。
Option Compare Database
Private flag As Boolean ‘设置私有变量flag,用来标志command1按钮的状态
Private Sub Form_Open(Cancel As Integer) ‘打开窗体时,
Me.Text1.Locked = True ‘设置text1文本框锁定,
Me.Command1.Caption = "编辑" ‘设置command1按钮标题为 编辑
End Sub
Private Sub Command1_Click()
If flag Then ‘第一次单击时,flag没有赋值,默认为0,即false
Me.Text1.Locked = True
Me.Command1.Caption = "编辑"
Else
Me.Text1.Locked = False
Me.Command1.Caption = "保存"
End If
flag = Not flag ‘每次单击时,变换flag的取值
End Sub
基本原理就这样,关键是设置一个模块级变量flag。