Office中国论坛/Access中国论坛

标题: 交叉查询表结果为什么不自动更新? [打印本页]

作者: 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




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3