Access SQL查询-在输入的多个查询中从表更改

Access SQL查询-在输入的多个查询中从表更改,sql,ms-access-2007,Sql,Ms Access 2007,我在Access的SQL视图中构建了一系列几乎相同的查询,如下所示(每个不同的查询中的条件都会更改) 我正在寻找一种方法,一次从[tablename]更改所有查询中的位,可能是从某种输入框 我希望这是可能的 假设您乐于使用VBA,您可以使用以下子例程: Public Sub ChangeTable(strQueryName As String, strNewTable As String) Dim db As DAO.Database Dim qdf As DAO.QueryD

我在Access的SQL视图中构建了一系列几乎相同的查询,如下所示(每个不同的查询中的条件都会更改)

我正在寻找一种方法,一次从[tablename]更改所有查询中的
位,可能是从某种输入框


我希望这是可能的

假设您乐于使用VBA,您可以使用以下子例程:

Public Sub ChangeTable(strQueryName As String, strNewTable As String)

    Dim db As DAO.Database
    Dim qdf As DAO.QueryDef
    Dim sqlString As String

    Set db = CurrentDb() 'Sets the database'
    Set qdf = db.QueryDefs("" & strQueryName & "") 'Tells the sub which query to look at'

    sqlString = Replace(qdf.SQL, "[Renfrewshire Raw Data]", "" & strNewTable & "", 1) 'Grabs the sql from your query and replaces the table name'
    qdf.SQL = sqlString 'Puts your new sql back into the query'

End Sub
这将从查询中获取sql并用新表名替换表名。如果需要,您可以创建一个表单,并从中获取sub所需的两个变量

Public Sub ChangeTable(strQueryName As String, strNewTable As String)

    Dim db As DAO.Database
    Dim qdf As DAO.QueryDef
    Dim sqlString As String

    Set db = CurrentDb() 'Sets the database'
    Set qdf = db.QueryDefs("" & strQueryName & "") 'Tells the sub which query to look at'

    sqlString = Replace(qdf.SQL, "[Renfrewshire Raw Data]", "" & strNewTable & "", 1) 'Grabs the sql from your query and replaces the table name'
    qdf.SQL = sqlString 'Puts your new sql back into the query'

End Sub