在我的主数据库中,我有一个包含两个日期和ID号的小表。我使用此表来更新查询并进行一些分析。该表如下所示:
Number | Date
1 | 09.07.2012.
2 | 10.07.2012.
我想做的是创建一个excel文件,在启动后弹出一个表单。
该表单应包含2个字段和2个按钮。在那些字段中,我输入了2个日期(带有日期选择器或其他),并且使用第一个按钮我在Access中更新了提到的表,其中包含新数据(删除旧日期并使用新数据更新),另一个我在Access数据库中启动预定义宏
这有多复杂?你能指导我解决这个问题吗?一些示例代码非常好。
Command25_Click()
CurrentDb.Execute "DELETE * FROM Datumi"
Dim tbl As Recordset
Set tbl = CurrentDb.OpenRecordset("Datumi")
tbl.AddNew tbl!brojka = "1"
tbl!datum = Text8.Value
tbl.Update
tbl.AddNew tbl!brojka = "2"
tbl!datum = Text10.Value
tbl.Update
答案 0 :(得分:0)
这在一定程度上已经走了很长一段路,因为我正在使用更新日期来演示如何运行已保存的查询。
'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