sql server - Using a Parameterized Query on a SQL Table in Excel using VBA -
i have code supposed run parameterized query of sql table query. way there designated cell (z1) supposed take in input value 1 of columns , automatically update query display results in excel table. keep getting run-time error: '1004' says it's general odbc error, i'm not sure happening. here database connection to: database
i'm using sql express, server .\sqlexpress
here code have:
sub parameterqueryexample() '---creates listobject-querytable on sheet1 uses value in ' cell z1 productid parameter sql query ' once created, query refresh upon changes z1. dim ssql string dim qt querytable dim rdest range '--build connection string-must use odbc allow parameters const sconnect = "odbc;" & _ "driver={sql server native client 10.0};" & _ "server=.\sqlexpress;" & _ "database=tsql2012;" & _ "trusted_connection=yes" '--build sql statement ssql = "select *" & _ " tsql2012.production.products products" & _ " products.productid = ?;" '--create listobject , querytable set rdest = sheets("sheet1").range("a1") rdest.currentregion.clear 'optional- delete existing table set qt = rdest.parent.listobjects.add(sourcetype:=xlsrcexternal, _ source:=array(sconnect), destination:=rdest).querytable '--add parameter querytable-use cell z1 parameter qt.parameters.add("productid", xlparamtypevarchar) .setparam xlrange, sheets("sheet1").range("z1") .refreshonchange = true end '--populate querytable qt .commandtext = ssql .commandtype = xlcmdsql .adjustcolumnwidth = true 'add other table properties here .backgroundquery = false .refresh end set qt = nothing set rdest = nothing end sub
open odbc data source admin program in control panel\system , security\administrative tools , check driver specified in code "driver={sql server native client 10.0};" matches driver under drivers tab. mismatch can give error.
Comments
Post a Comment