我創建2個表(資產和AssetMovements)和一種形式(資產)的資產管理數據庫的點擊保存表單數據2個表。 我需要保持每一項資產運動的記錄,所以每一個新的資產加入到資產表或現有資產記錄的「位置」值時間被修改,記錄應保存至AssetMovements表。 AssetMovements表就在那裏記錄交易。的MS Access:一鍵
我該如何做到這一點?我會很感激我能得到的任何指示,或者如果有人能提出一個更好的方法來保存運動記錄。 謝謝。
我創建2個表(資產和AssetMovements)和一種形式(資產)的資產管理數據庫的點擊保存表單數據2個表。 我需要保持每一項資產運動的記錄,所以每一個新的資產加入到資產表或現有資產記錄的「位置」值時間被修改,記錄應保存至AssetMovements表。 AssetMovements表就在那裏記錄交易。的MS Access:一鍵
我該如何做到這一點?我會很感激我能得到的任何指示,或者如果有人能提出一個更好的方法來保存運動記錄。 謝謝。
按鈕已當你點擊它被髮射的單擊事件。使用VBA編寫點擊按鈕時執行的一些代碼。
當您單擊按鈕時,您將記錄保存到資產。然後使用查詢將該記錄複製到AssetMovements表。因此,該代碼會是這個樣子:
Dim OldLocation As String
Private Sub CmdSave_Click()
DoCmd.RunCommand acCmdSaveRecord
End Sub
Private Sub Form_AfterUpdate()
Dim strSQL
If OldLocation <> Location.Value Then
strSQL = "INSERT INTO AssetMovements SELECT T1.* FROM Assets WHERE Assets.ID = "
strSQL = strSQL & Me.ID
CurrentDb.Execute strSQL
End If
End Sub
Private Sub Form_BeforeUpdate(Cancel As Integer)
OldLocation = Me.Location.OldValue
End Sub
Private Sub Form_Current()
OldLocation = Me.Location.Value
End Sub
那麼這將複製形式的當前記錄,使用一個唯一的ID(我在由assetid猜到了),到AssetMovement表。
看到您正在使用Access 2010,這看起來像是一個很好的理由Data Macro即使從MS Access外部更新數據,數據宏也將運行。
我創建了一個資產表和AssetMovements表,該表AssetMovements有一個默認值的字段ActionDate NOW(),其中規定動作發生的日期。
您需要在資產表中的兩個宏:
,這是所有你需要做的,如下面所示。
添加或更改記錄後,數據被自動記錄在AssetMovements表:
您可以運行一個小示例VBScript ...
strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=z:\docs\demo.accdb"
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
cn.Open strCon
sSQL="INSERT INTO Assets (Asset,Location) Values ('Printer',7)"
cn.Execute sSQL
sSQL="Update Assets Set Location=5 Where Asset='Printer'"
cn.Execute sSQL
要查看這也會更新AssetMovements表。
也有更改的更完整的記錄中的LogEvent數據宏。
其編程您使用的語言???? – 2013-02-12 07:14:12
嗨NidhishKrishnan,我正在使用Microsoft Access。 – 3ph 2013-02-12 10:52:47