在函數內部,我使用了一個字符串來運行sql。我需要根據用戶選擇改變一些字符串。爲簡潔起見,我在每張表中只包含一個字段。而且,這些不是真正的表名。MS Access VBA:動態SQL
strSQL = "DELETE * FROM tblWax"
db.Execute strSQL, dbFailOnError
strSQL = "INSERT INTO tblWax (strPortName, lngShortSet) " & _
"SELECT tblAAA.strPastName, tblBBB.lngShortID " & _
"FROM tblAAA INNER JOIN tblBBB ON tblAAA.Parameter = tblBBB.Parameter"
db.Execute strSQL, dbFailOnError
我想替代tblSSS爲tblBBB取決於用戶的選擇,並使用同樣的選擇(場strChoice內),tblWax需要被tblHat。那就是: 如果strChoice = 1,則tblWax,tblAAA,tblBBB 如果strChoice = 2,則tblHat,tblAAA,tblSSS
否則,串(一個或多個)的其餘部分是相同的。
這可以通過在SQL中使用字符串變量來重構,例如'strTargetTable =「tblWax」'。 – Smandoli
確實。 SQL不會更改,因此請使用_select-case_來確定表名,然後用表名替換SQL中的佔位符。 – Gustav
我確實喜歡選擇案例,但案件數量很少,現在可能還沒有。因此,我將使用select case將變量更改爲表名,並將該變量放入SQL中。謝謝大家。 – random13