我有一系列几乎相同的查询,我在Access中的SQL视图中构建如下(每个不同查询中的条件更改)
SELECT t.SUBSECTION_VALUES, t.SECTION_CODE, t.SECTION_TYPE_NAME, t.CROSS_SECTIONAL_POSITION, t.START_METRES, t.END_METRES, t.RUT_RAW, t.[3M], t.[10M], t.CRACKING, t.LHS_TEXTURE, t.UKPMS_RCI_RURAL_OR_URBAN_UID, t.UKPMS_RCI_DOT_CLASSIFICATION_UID
FROM [Renfrewshire Raw Data] AS t
WHERE (((t.UKPMS_RCI_RURAL_OR_URBAN_UID)=1) AND ((t.UKPMS_RCI_DOT_CLASSIFICATION_UID)=4))
ORDER BY t.SUBSECTION_VALUES DESC;
我正在寻找一种方法来同时更改所有查询中的FROM [tablename]
位,可能来自某种输入框?
我希望这是可能的!
答案 0 :(得分:0)
假设您很乐意使用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并将表名替换为您的新表名。如果需要,可以创建一个表单,并从那里获取子所需的两个变量。