选择每个excel工作表时,如何确定时间戳
到目前为止,我编写的代码采用用户名、计算机名和当前日期时间,并将其写入SQL表。我想做的是在选择不同的工作表时捕获,以及与每个工作表关联的时间戳选择每个excel工作表时,如何确定时间戳,excel,vba,Excel,Vba,到目前为止,我编写的代码采用用户名、计算机名和当前日期时间,并将其写入SQL表。我想做的是在选择不同的工作表时捕获,以及与每个工作表关联的时间戳 Sub UpdateTable() Dim cnn As ADODB.Connection Dim uSQL As String Dim strText As String Dim strDate As Date Dim strUsername As String Dim strComputerName As Variant strUsername
Sub UpdateTable()
Dim cnn As ADODB.Connection
Dim uSQL As String
Dim strText As String
Dim strDate As Date
Dim strUsername As String
Dim strComputerName As Variant
strUsername = Environ("username")
strComputerName = Environ("Computername")
strDate = Now
Set cnn = New Connection
cnnstr = "Provider=SQLOLEDB; " & _
"Data Source=icl-analive; " & _
"Initial Catalog=DW_ALL;" & _
"User ID=dw_all_readonlyuser;" & _
"Trusted_Connection=Yes;"
cnn.Open cnnstr
uSQL = "INSERT INTO Audit (UN,CN,DT) VALUES ('" & strUsername & "','" & strComputerName & "','" & strDate & "');" ''
Debug.Print uSQL
cnn.Execute uSQL
cnn.Close
Set cnn = Nothing
Exit Sub
End Sub
我不太确定我是否过度简化了这一点,但根据我的理解: 将
UpdateTable()
sub添加到模块中。将工作表\u Activate()
事件添加到要运行的每个工作表UpdateTable()
选择工作表后,将运行UpdateTable()
sub,将用户名、计算机名和时间戳添加到数据库中。可能值得添加工作表名称(如果您希望在多个工作表中运行此名称)
因此,当选择工作表时,您可以将
应用程序.ActiveSheet.Name
和任何其他值(时间戳、用户等)添加到数据库。您需要在该子表中运行相同的sql插入,还是在另一个表中使用该数据创建不同的记录?sql插入都将放在一个表中。我知道,我的意思是,如果每次用户单击另一张工作表时都需要运行相同的代码,是否有方法将此代码添加到当前打开的工作表插入到SQL表的现有代码中?Application.ActiveSheet.Name
返回当前活动工作表的名称。您可以在数据库中为工作表名称添加一个字段,并在运行子UpdateTable()
时添加该字段;插入Application.ActiveSheet.Name
我不太确定同行评审是如何工作的,但是,我编辑了您的问题以显示上述示例。每次运行代码时,活动工作表都会与用户名、计算机名和时间戳一起插入到数据库中。