标题: 交叉查询表结果为什么不自动更新? [打印本页] 作者: jp777 时间: 2009-1-10 21:30 标题: 交叉查询表结果为什么不自动更新? 我设计了一个查询,并根据该查询产生了一个新的交叉查询表。但是奇怪的是当查询出结果时,交叉查询表并没有做相应的变化。请问这是为什么呢?[attach]34430[/attach]作者: 雨后的天空 时间: 2009-1-10 21:37
我下看看作者: 雨后的天空 时间: 2009-1-10 21:44
我看着头晕,用中文多好作者: Henry D. Sy 时间: 2009-1-10 21:52
你只是对窗体进行筛选,又不是对查询设定条件当然跟查询无关了。作者: 雨后的天空 时间: 2009-1-10 21:53
%$##@_Alias这个表在哪?作者: Henry D. Sy 时间: 2009-1-10 21:57
原帖由 雨后的天空 于 2009-1-10 21:53 发表
%$##@_Alias这个表在哪?
子查询所使用的别名作者: jp777 时间: 2009-1-10 23:33
版主,为了更好的说明我的问题。我把文件修正了一下。
我想了解的就是,在设定好查询条件后,如何产生连锁反应。及查询表发生改变,由其创建的交叉查询表也发生改变。谢谢。
[attach]34431[/attach]作者: Henry D. Sy 时间: 2009-1-10 23:58
请不要用access的保留字作为字段或者控件的名字
Private Sub Year_AfterUpdate()
Dim Qdf As DAO.QueryDef
Dim strSQL As String
Set Qdf = CurrentDb.QueryDefs("Q")
strSQL = "SELECT Total.* FROM Total Where format(Year,'yyyy')='" & Me.Year & "'"
Qdf.SQL = strSQL
Me.reference.SourceObject = "查询.Q"
Me.Subform.SourceObject = "查询.Total_Year"
Qdf.Close
Set Qdf = Nothing
End Sub作者: jp777 时间: 2009-1-11 21:48
谢谢版主的解答,我有个小问题,您指定了所有表中Year字段的格式应该为'yyyy'.但如果该字段的首字符不是'yyyy'类型的。查询的结果就是错误的,为什么?
例如
Year
2004-01改为 A-2004-01,该条记录就无法显示出来了。[attach]34456[/attach]作者: Henry D. Sy 时间: 2009-1-11 22:03
每个字段只能一个属性,您在year里输入A-2004-01算什么意思作者: jp777 时间: 2009-1-11 22:21
但是year字段的属性是文本啊,如果我想用关键字搜寻,而不是仅仅限于年份是否可行?即搜寻字段中含有指定字符的记录就可被过滤出,而不仅仅限于年份(例如A-2004-01,这样虽然不是以年份开头,但只要记录中有2004即可搜索出)。我不是很懂,能否答复一下。万分谢谢。作者: Henry D. Sy 时间: 2009-1-11 22:34
Private Sub Year_AfterUpdate()
Dim Qdf As DAO.QueryDef
Dim strSQL As String
Set Qdf = CurrentDb.QueryDefs("Q")
strSQL = "SELECT Total.* FROM Total Where instr(Year,'" & Me.Year & "')>0"
Qdf.SQL = strSQL
Me.reference.SourceObject = "查询.Q"
Me.Subform.SourceObject = "查询.Total_Year"
Qdf.Close
Set Qdf = Nothing
End Sub