在访问中从不同的查询中调用一个查询

时间:2012-10-08 15:45:54

标签: ms-access

假设我有3个查询:

  • Query1
  • Query2
  • QUERY3

我想通过运行单个查询QueryRunAll来运行它们。如何在QueryRunAll中运行Query1,Query2和Query3?

非常感谢!

2 个答案:

答案 0 :(得分:1)

由于Query1Query2Query3都是INSERT个查询,因此您可以通过单个查询QueryRunAll运行它们的唯一方法,具有用户定义的功能。

如果您将从Access会话中运行QueryRunAll,则可以将其用作SQL:

SELECT Runall() AS successful;

但是,如果您打算从Access会话外部运行QueryRunAll,则它无法使用UDF,因此您将无法让一个查询运行3个操作查询。

Public Function Runall() As String
    Dim blnReturn As Boolean
    Dim db As DAO.Database
    Dim strMsg As String

On Error GoTo ErrorHandler

    Set db = CurrentDb
    db.Execute "Query1", dbFailOnError
    db.Execute "Query2", dbFailOnError
    db.Execute "Query3", dbFailOnError
    blnReturn = True
    Set db = Nothing

ExitHere:
    Set db = Nothing
    Runall = blnReturn
    Exit Function

ErrorHandler:
    ' do more here if desired
    GoTo ExitHere
End Function

答案 1 :(得分:0)

MS Access(至少2003 )确实允许以下语法进行查询,这些查询允许您一起运行多个查询:

SELECT Query1.col1, Query2.col2, Query3.col1
FROM Query1, Query2, Query3

INSERT

INSERT INTO yourtable (col1, col2,...)
SELECT Query1.col1, Query2.col2
FROM Query1, Query2, Query3