2015-02-10 20 views
1

我有一個表單上的按鈕,將運行一個數據宏,將標記今天的日期之前的所有記錄。換句話說:訪問2007:編輯鏈接表中的所有記錄在點擊通過前端

For Each Record in TblEvents 
Where Condition = [TblEvents].[EndDate]<Date() 
Edit Record 
    Set Field [TblEvents].[passed]=True 

當我拆分數據庫時,表單上的按鈕停止工作(d'oh)。

我仍然需要某種功能。這可能嗎?我剛剛開始學習VBA,但我知道setField和editRecord選項在構建器中的數據宏之外並不存在。

+1

你如何執行你的SQL字符串?它使用CurrentDb.Execute嗎?你能發佈你正在執行SQL的行嗎? – DataWriter 2015-02-10 23:19:54

+0

我使用了與Access一起構建的命名宏構建器/嚮導,因此它基本上只是直接從表中運行。問題是,在我拆分數據庫之後,我無法在前端運行數據宏。我得到一個「數據宏」無法找到的消息。 – rachelsimm 2015-02-10 23:30:19

回答

2

它看起來像你的宏操作可以很容易地轉換爲訪問SQL UPDATE,假設TblEvents現在是一個鏈接到您的後端數據庫中的表。您可以從DAO.Database對象引用中執行該語句。

包括在你的命令按鈕的單擊事件類似下面的代碼:

Dim strUpdate As String 
Dim db As DAO.Database 

strUpdate = "UPDATE TblEvents" & vbCrLf & _ 
    "SET [Passed] = True" & vbCrLf & _ 
    "WHERE [EndDate] < Date();" 
Debug.Print strUpdate '<- examine completed statement text in Immediate window 
         ' Ctrl+g will take you there 
Set db = CurrentDb 
db.Execute strUpdate, dbFailOnError 
MsgBox db.RecordsAffected & " row(s) updated." 
相關問題