2013-04-25 149 views
3

我遇到了问题。VBA Excel - ACCESS中的更新记录

我想使用EXCEL中的VBA更新Access数据库表中的现有记录。

我的代码:

sqlik = "UPDATE query which works in access" 

Set ZAP_QUERY2 = baza.CreateQueryDef("", sqlik) 

With ZAP_QUERY2 

    ![abc] = Edit_Form.abc.Text 
    ![bcd] = Edit_Form.bcd.Text 
    ![cde] = Edit_Form.cde.Text 

End With 

当我用sqlik =“SELECT查询其在接入作品”它没有做任何改变。但是用sqlik =“更新查询在访问中起作用”它说“在这个集合中找不到任何对象”

任何想法?

感谢您使用DAO您的帮助

+0

CreateQueryDef为访问对象,不能在Excel VBA中使用。请参考此链接http://vbadud.blogspot.in/2009/03/how-to-update-access-table-using-vba.html – Santosh 2013-04-25 18:28:06

+0

您应该了解ADODB,这是您需要与JET/ISAM数据库。 – 2013-04-26 19:38:11

回答

2

A液:

... 
dim db as DAO.Database, rec as Dao.Recordset 
dim strSQL as String 
Set db = OpenDatabase("c:\DatabaseFolder\YourDatabase.accdb") 
strSQL = "SELECT * FROM yourTable WHERE yourField=1" 
Set rec = db.OpenRecordset(strSQL, dbOpenDynaset, dbEditAdd) 
With rec 
    .MoveFirst 
    ![aField] = Edit_Form.abc.Text 
    .Update 
End With 
rec.Close 
db.Close 
... 

希望这有助于你