2012-05-03 102 views
1

有没有办法阻止Access在表不再存在时更新查询,特别是删除联接?阻止MS Access自动更新查询

例如,以下查询与临时表一起使用;

Select Table1.Col1, Table1.Col2 
From Table1 
    left join Table2 on Table1.Col1 = Table2.Col1 
Where Table2.Col1 is null 

如果临时表随后被删除,并且查询打开,Access会丢弃所产生的连接;

Select Table1.Col1, Table1.Col2 
From Table1, Table2 
Where Table2.Col1 is null 

这类似于在Prevent Access from Changing Queries

回答

0

要求尽量disable AutoCorrect,关闭并重新打开数据库,看看这仍然发生的问题。

在某些情况下,Access可能会“做正确的事情”并自动更新您的查询。
在这种情况下,你可以使用下列方法之一:

  • 请VBA代码的SQL。根据需要

    ' Bind form to manually using the Form Open event ' 
    Private Sub Form_Open(Cancel As Integer) 
        Dim sql As String 
        sql = sql & "Select Table1.Col1, Table1.Col2 " 
        sql = sql & "From Table1 " 
        sql = sql & " left join Table2 on Table1.Col1 = Table2.Col1 " 
        sql = sql & "Where Table2.Col1 is null" 
        ' Bind the form directly to the SQL ' 
        Me.RecordSource = sql 
    End Sub 
    
  • 保存到文件查询的SQL,并重新加载:
    可以绑定生成的SQL或重新创建查询作为必要的,例如

    ' Save the query to a text file, in the application folder ' 
    Application.SaveAsText acQuery, "MyQuery", CurrentProject.Path & "\myQuery.txt" 
    
    ' Load the the query from its previously saved file ' 
    Application.LoadFromText acQuery, "MyQuery", CurrentProject.Path & "\myQuery.txt"