2012-03-15 79 views
1

我不太确定如何定义这个。MS Access表格插入隐藏值

我有一个有几个字段的表,我们称它们为:ID,名称和类型。

我有一个表格,允许用户通过数据表视图添加新记录。 ID和类型是隐藏的,只有名称出现。我设置了一个仅显示特定类型记录的筛选器(即Type = 2)

但是,如果有人向数据表中输入新记录,则Type字段不会被设置。在该字段上设置默认值不会完成我想要的操作,因为我有几个基于Type定制的表单,因此每个表单都需要根据该类型将新记录提交到同一个表中。

有没有办法来定义它应该设置类型的值?我想我可以捕获BeforeUpdate事件,并设置这个值,只是隐藏列。不过,我想知道是否有一种方法“适当”的技术。

回答

0

在窗体的Before Insert事件中,可以检查当前的Filter表达式,解析出过滤器的类型值,将其从字符串转换为数字,最后将该数字分配给绑定到的隐藏控件类型字段。

因此,假设隐藏控件被命名为txtType一个文本框,其控制源是一个长整型字段:

Private Sub Form_BeforeInsert(Cancel As Integer) 
    Me.txtType = CLng(Split(Me.Filter, "=")(1)) 
End Sub 

使用适当的类型转换函数代替CLng()匹配绑定字段的数据类型。

这种做法应该工作,如果你设置的过滤器是这样的:

Me.Filter = "[Type] = 2" 
Me.FilterOn = True 

但是,如果您使用的是不同的方法做过滤,请给我们介绍一下它的细节。

+0

这应该工作,谢谢。 – crush 2012-03-15 18:42:13