在函数内部,我使用了一个字符串来运行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