-1

假设我有 3 个查询:

  • 查询1
  • 查询2
  • 查询3

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

非常感谢!

4

2 回答 2

1

由于Query1Query2Query3都是INSERT查询,因此您可以从单个查询 、 运行它们的唯一方法QueryRunAll是使用用户定义的函数。

如果您将从QueryRunAllAccess 会话内部运行,则可以将其用作其 SQL:

SELECT Runall() AS successful;

但是,如果您打算QueryRunAll从 Access 会话外部运行,则它不能使用 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
于 2012-10-12T16:52:29.740 回答
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
于 2012-10-08T19:23:51.047 回答