問題:
如何寫表名是變量的參數(shù)查詢?
表名是變量的查詢?cè)趺磳??比如:SELECT * FROM [@kk]
我要將表名作為一個(gè)參數(shù)輸入,隨客戶輸入的不同查詢不同的表。
如何寫字段名是變量的參數(shù)查詢?比如:SELECT * FROM tablename WHERE [input fieldname]='545'
回答:
上述寫法是錯(cuò)誤的!
同 SQL SERVER 的 T-SQL 語句一樣,“表名”或者“字段名”是不允許用變量代替。
你必須用 VBA 來控制 SQL 字串的組合
dim strsql as string
dim strTableName as string
strTableName="abc"
strsql="select * from " & strTableName
'后面就看你隨便寫了,你可以用 RECORDSET 打開,也可以用 create view 語句建立一個(gè)查詢
'用 recordset 打開的代碼如下:
dim rs as new adodb.recordset
rs.open strsql,currentproject.connection,1,1
....
'也可以用 CREATE VIEW 語句來創(chuàng)建一個(gè)新的查詢,并打開
on error resume next
currentproject.connection.execute "drop view 查詢名稱"
currentproject.connection.execute "create view 查詢名稱 as " & strsql
docmd.openquery "查詢名稱"
順便提一下, SQL SERVER 應(yīng)該如下操作
declare @sql varchar(200)
set @sql='select * from ' + @table_name
execute(@sql)
如何寫表名是變量的參數(shù)查詢?
表名是變量的查詢?cè)趺磳??比如:SELECT * FROM [@kk]
我要將表名作為一個(gè)參數(shù)輸入,隨客戶輸入的不同查詢不同的表。
如何寫字段名是變量的參數(shù)查詢?比如:SELECT * FROM tablename WHERE [input fieldname]='545'
回答:
上述寫法是錯(cuò)誤的!
同 SQL SERVER 的 T-SQL 語句一樣,“表名”或者“字段名”是不允許用變量代替。
你必須用 VBA 來控制 SQL 字串的組合
dim strsql as string
dim strTableName as string
strTableName="abc"
strsql="select * from " & strTableName
'后面就看你隨便寫了,你可以用 RECORDSET 打開,也可以用 create view 語句建立一個(gè)查詢
'用 recordset 打開的代碼如下:
dim rs as new adodb.recordset
rs.open strsql,currentproject.connection,1,1
....
'也可以用 CREATE VIEW 語句來創(chuàng)建一個(gè)新的查詢,并打開
on error resume next
currentproject.connection.execute "drop view 查詢名稱"
currentproject.connection.execute "create view 查詢名稱 as " & strsql
docmd.openquery "查詢名稱"
順便提一下, SQL SERVER 應(yīng)該如下操作
declare @sql varchar(200)
set @sql='select * from ' + @table_name
execute(@sql)

