update 2 fields in Access database with Excel data and probably a Macro

泪湿孤枕 提交于 2020-01-16 11:56:50

问题


In my master database I have a small table that contains two dates and ID numbers. I use this table for updating queries and do some analysis. The table looks like this:

Number   | Date  
1        | 09.07.2012.  
2        | 10.07.2012.

The thing I would like to do is to have an excel file that pops-up a form after startup.

That form should contain 2 fields and 2 buttons. In those fields I input 2 dates (with date picker or whatever) and with 1st button I update mentioned table in Access with fresh data (delete old dates and update with new ones) and with the other I start a predefined Macro in that Access database.

How complicated is this? can you guide me to the solution? Some sample code would be excellent.

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

回答1:


This is going the long way about to a certain extend because I am using the update of the dates to demonstrate how you might also run the saved queries.

'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 


来源:https://stackoverflow.com/questions/11411522/update-2-fields-in-access-database-with-excel-data-and-probably-a-macro

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!