这在一定程度上会走很长的路,因为我正在使用日期的更新来演示您如何还可以运行保存的查询。
'SQL for stored query, this assumes you
'will be updating based on some key
UPDATE DatesTable t
SET t.Date1 = [@Date1], t.Date2 = [@Date2]
WHERE t.aAuto=[@Key]
'Code for Excel
'You could set a library reference to
'Microsoft ActiveX Data Objects x.x Library
Dim cmd As Object
Dim cn As Object
Set cmd = CreateObject("ADODB.Command")
Set cn = CreateObject("ADODB.Connection")
'Connection string, see also http://connectionstrings.com
strCon = "Provider=Microsoft.ACE.OLEDB.12.0; " & _
"Data Source=z:\docs\test.accdb"
cn.Open strCon
'Name of the saved query
cmd.CommandText = "UpdateDates"
cmd.CommandType = adCmdStoredProc
cmd.ActiveConnection = cn
'Some parameters.
'http://www.w3schools.com/ADO/met_comm_createparameter.asp
'Make sure you get the type right, you will find details here:
'http://www.w3schools.com/ADO/ado_datatypes.asp
'You will find direction here:
'http://www.w3schools.com/ado/prop_para_direction.asp
'Make sure you get the order right
'adDate = 7, adInteger = 3, adParamInput = 1
cmd.Parameters.Append cmd.CreateParameter("@Date1", 7, 1, , txtDate1)
cmd.Parameters.Append cmd.CreateParameter("@Date2", 7, 1, , txtDate2)
cmd.Parameters.Append cmd.CreateParameter("@Date2", 3, 1, , MyUniqueKey)
'recs : return for records affected
'adExecuteNoRecords = 128 : no records are returned by this query,
'so this increases efficiency
'http://www.w3schools.com/ADO/ado_ref_command.asp
cmd.Execute recs,,128
'Did it work?
MsgBox "Records updated: " & recs