首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Access数据库中的更改仅出现在新记录中

问Access数据库中的更改仅出现在新记录中
EN

Stack Overflow用户
提问于 2012-07-13 01:24:50
回答 2查看 117关注 0票数 1

我在access中有一个表单,其中包含一系列问题。每个问题都有一个带有三个单选按钮的框架,每个单选按钮指定一个不同的选择(为了方便1、2、3)。我已经在此表单中添加了一个问题,并希望以某种方式指定更改之前的所有记录都不在此字段中。我想我可以在前面的记录中将这个字段的值设置为-1,以表示它们是例外的。但是现在我不知道如何在以前的记录中禁用这个问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-13 02:40:06

不知道我是否能很好地理解你的描述,根据我的直觉,表单的当前事件在这里可能会有用。

代码语言:javascript
复制
Private Sub Form_Current()
    Me.ControlName.Enabled = Not Me.indicator_field = -1
End Sub

如果新记录的ControlName应该为Enabled,您可以使用Nz()函数来处理初始Null。

代码语言:javascript
复制
Me.ControlName.Enabled = Not Nz(Me.indicator_field, 0) = -1

你也可以管理ControlName的Locked属性,而不是Enabled。这两种组合会以不同的方式改变控件的外观。看看你喜欢哪种。

我可能忽略了其他细节,但希望这能为您提供一个有用的起点。

如果表单包含按顺序排列的文本框,如Text1、Text2、...Textn,你可以使用一个For循环来处理它们中的每一个...启用/禁用或其他...我将使用Debug.Print,因为它对我来说很容易。

代码语言:javascript
复制
Dim i As Long
Dim strCtl As String
For i = 1 To 10
    strCtl = "Text" & CStr(i)
    Debug.Print Me.Controls(strCtl).Name
Next i

关键是您可以使用string变量来引用表单的Controls集合中的特定成员。然后根据需要对其执行操作,而不是打印其.Name属性。

票数 1
EN

Stack Overflow用户

发布于 2012-07-13 01:27:28

您可以参考NewRecord属性:

代码语言:javascript
复制
Private Sub Form_Current()
     If Me.NewRecord = True
        Then Me.MyControl.Enabled = True
     Else
        Then Me.MyControl.Enabled = False
     End If
End Sub

或者使用你的新字段,你可以说:

代码语言:javascript
复制
If Me.MyField = -1
    Then Me.MyControl.Enabled = False
 Else
    Then Me.MyControl.Enabled = True
 End If

在MS Access表中包含创建日期时间几乎总是一个好主意。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11457258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档