我有工资单文件,我需要使用数据连接链接到不同工作簿中可用的输入。所有这些输入将以表格形式显示在不同的工资单中。
通过这些连接,工资核算流程将完成而不会出现任何错误:每个月,工资核算流程应该只改变输入文件路径&创建与每个输入表的新连接,以准备新的工资单文件。
这是我的月度任务,比处理工资单需要更多的时间。
我录制了这个宏,只适用于一张纸的数据连接。我有超过20张数据要与不同的工作表名称连接,以完成工资核算流程。
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array( _
"OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;Password="""";User ID=Admin;" & _
"Data Source=C:\Users\vinod.k\Desktop\Test Connection\Salary Details-Jan-18.xlsx;" & _
"Mode=Share Deny Write;Extended Properties=""HDR=YES;"";" & _
"Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";" & _
"Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=37;" & _
"Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;" & _
"Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";" & _
"Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;" & _
"Jet OLEDB:Don't Copy Locale on Compact=False;" & _
"Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;" & _
"Jet OLEDB:Support Complex Data=False;" & _
"Jet OLEDB:Bypass UserInfo Validation=False"), Destination:=Range("$A$1")).QueryTable
.CommandType = xlCmdTable
.CommandText = Array("Salary$")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.SourceDataFile = "C:\Users\vinod.k\Desktop\Test Connection\Salary Details-Jan-18.xlsx"
.ListObject.DisplayName = "Table_Salary_Details_Jan_18"
.Refresh BackgroundQuery:=False
End With
我想最小化数据连接过程。