access数据库的记录如何锁定

我用access制作了一个人员管理数据库,现已录入200余人,设列字段包括姓名、性别、出生年月、民族、职务、职称等,并设置为“文本型”。为了区分这些人员的文化程度,又设列... 我用access制作了一个人员管理数据库,现已录入200余人,设列字段包括姓名、性别、出生年月、民族、职务、职称等,并设置为“文本型”。为了区分这些人员的文化程度,又设列了是否小学、是否初中、是否高中、是否大学等字段,并设置为“是否型”。
在录入时,“是否型”字段只需点击鼠标即可,录入速度明显快于“文本型”,很快完成了“表”、“窗体”、“查询”。
建库完成后,使用中问题就来了:
打开“表”、“窗体”、“查询”后,查看相关记录时,随着鼠标在界面上的的移动,不经意间就把原有的“√”抹掉了,不经意间就把原有的空白“□”点上了“√”,原有的记录总是被自己无意地改动,造成统计数字不准确。
请问每条记录的“是否型”的空白“□”和“√”如何才能锁定?
请高手指点,谢谢。
展开
 我来答
无迹影
2010-02-05 · TA获得超过1159个赞
知道小有建树答主
回答量:253
采纳率:100%
帮助的人:198万
展开全部

当年我在这里也走了不少弯路,查了很多资料才发现问题很简单,下面就轻松实现锁定与解锁.

在窗体页眉中新建一个复选框或单选框,这里我用的是复选框(我取的名叫ChkLock),下面是这个复选框的单击事件

Private Sub ChkLock_Click()

Dim ctl As Control

For Each ctl In Me.Section(0).Controls 'Section(0)是主体的意思

    If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox Or ctl.ControlType = acCheckBox Then

    '或用类似下面这句

    'If ctl.Name <> "ChkLock" And ctl.Name <> "TxtFind" And ctl.ControlType <> acLabel Then

        ctl.Locked = Me.ChkLock '这里就是实现锁定或解锁

    End If

Next

End Sub

上面实现锁定的代码,下面实现自动锁定,不管你有没有忘记.利用窗体的Current事件(成为当前事件),如果要新建记录要自动解锁

Private Sub Form_Current()

'检查是否要锁定

If Me.NewRecord Then  '如果是新建状态就可以编辑(将勾取消)

    Me.ChkLock = False

Else

    Me.ChkLock = True

End If

Call ChkLock_Click  '调用复选框的单击事件,在这里变成子程序

End Sub

最好把这个控制锁定的复选框放在窗体页眉上,不然连它都锁定了就没法解锁了.

附:

'Section(0)是主体的意思,这里就是指循环主体上的控件,页脚页眉上的控件就影响不到了,如你要,Section(1)表示是窗体页眉Section(2)表示是窗体页脚 

ControlType 属性是用于指定控件类型的固有常量。

常量                   控件 

acBoundObjectFrame    绑定对象框  

acCheckBox            复选框  

acComboBox            组合框  

acCommandButton       命令按钮  

acCustomControl       ActiveX(自定义)控件  

acImage               图像  

acLabel               标签  

acLine                线条  

acListBox             列表框  

acObjectFrame         未绑定对象框或图表  

acOptionButton        选项按钮  

acOptionGroup         选项组  

acPage                页  

acPageBreak           分页符  

acRectangle           矩形  

acSubform             子窗体/子报表  

acTabCtl              选项卡  

acTextBox             文本框  

acToggleButton        切换按钮

云中老鼠
2010-02-11 · TA获得超过830个赞
知道小有建树答主
回答量:289
采纳率:0%
帮助的人:353万
展开全部

楼上的高招我一时间没有看完。

如果我做,对于窗体:我会分两种窗体,一种是录入窗体,另一种是查看窗体。

这里就说查看窗体,如果该字段不想被修改,就将这个字段的控件(一般是文本框)的属性→数据→ 是否锁定,选择“是”。

对于查询:如果是在查询中不想被无意修改,请参考连接地址:

http://zhidao.baidu.com/question/134471481.html

选择有方框的控件才有这个选项的,详见图。

另外,对于表的建立,不建议像你这样的建立方式,是否小学、是否初中等其实是文化程度一个字段的派生项,这样建立字段不利于数据库的维护和更新。如果这个人文化程度从小学提高到初中,就要修改是否小学和是否初中两个字段。

参考资料: http://zhidao.baidu.com/question/134471481.html

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式