我创建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