In general, stored Access queries are faster than embedded SQL in your VB application. It can be a great benefit to be able to send parameters to the query directly from VB. Saving these queries in Access also reduces the amount of code you must maintain directly in your VB app. These code segments show how to send a parameter to a stored Access query. Here is the example Access SQL query:
PARAMETERS ID Text;SELECT DISTINCTROW Host.IPAddressFROM HostWHERE Host.ID=[ID];
This code retrieves an IP address from an Access table, where the host ID in the table matches the host ID in the parameter. This code is stored in the Access database and has already been parsed and optimized. This is the key to gaining the performance benefits of stored queries. The Jet engine then uses this QueryDef when it is called from VB.Assume that there is a form with a data control on it. Here is the corresponding VB code to send the parameter:
Dim db As DatabaseDim rs As RecordsetDim qd As QueryDefSet db = dthosts.Database'dthosts is a data control on a formSet qd = db.QueryDefs("aq_host")'aq_host is the MS Access query nameqd.Parameters("ID") = "MY_Host_ID"'host ID is the parameter for this querySet rs = qd.OpenRecordset()'open the recordset Set dthosts.Recordset = rs'return the recordset to the data control
You can now use this data control in conjunction with a list-box control (or whatever control you like) to display the data. You can also add multiple parameters by adding more “qd.parameters” to the middle section of this code.Insert, update, and delete queries (or “action queries,” as they are called in Access) can use parameters in the same fashion.