2010-10-27 85 views
1

假設我們有一個表在Microsoft Access:如何查詢表格?

ID | Data 

,我需要選擇在VBA代碼中的SQL查詢一行。

在哪個變量中存儲該行?如何將該行寫回VBA中的表格?你能寫簡單的代碼嗎?

+4

@Igor:讓人們知道你是認真的:**給予好評的答案**你前面的問題,和**標記的答案爲'接受'答案**。這是StackOverflow上的信譽系統。 – 2010-10-27 15:48:45

+0

讓我不同意接受。如果提問的人從未接受過單一的答案,我不會給老鼠的屁股。我只會閱讀和回答那些令我感興趣的問題,以及我是否可以從回答中獲得聲望點是我能想象到的最不有趣的問題。 – 2010-10-27 21:10:18

+1

@Igor:是什麼讓你覺得你需要在代碼中加載一行?在Access中,編輯通常是通過表單來完成的,你不需要編寫任何代碼來完成。 – 2010-10-27 21:12:02

回答

3

您需要使用RecordSet對象。 T his site提供了許多例子。

下面是我從該網站放在一起的一個示例。這將從tblName獲取所有記錄並更新第一條記錄

UPDATE回答更改爲使用使用Access表時推薦的DAO。

Dim rs As New DAO.Recordset 

Set rs = CurrentDb.OpenRecordset("SELECT pkPeopleID, LastName FROM tblPeople", dbOpenDynaset) 

rs.MoveFirst 
rs.Edit 
rs![Data] = "Foobar" 
rs.Update 

rs.Close 
Set rs = Nothing 

如果你想有一個特定行,而不是僅僅在第一行,你可以添加例如where子句

Set rs = CurrentDb.OpenRecordset("SELECT pkPeopleID, LastName FROM tblPeople Where id = 123", dbOpenDynaset) 

或者你可以使用的FindFirst而不是

rs.FindFirst "id = 123" 
+0

這將更新該行或添加其他人? – Igor 2010-10-27 16:10:05

+3

@Conrad Frix。 DAO原生Access,幾乎總是優先於ADODB使用。 @Igor,AddNew可用於將記錄添加到記錄集。你也可以使用查詢:Set db = CurrentDB db.Execute「Insert into MyTable(MyText,Mydate,MyInt)Values('ABC',#2010/11/25#,1) :) – Fionnuala 2010-10-27 16:24:20

+0

@igor我根據你的評論更新了我的答案 – 2010-10-27 16:26:25