0

在我的主数据库中,我有一个包含两个日期和 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
4

1 回答 1

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 
于 2012-07-10T11:13:53.843 回答