如何解决Excel访问文件上传
我希望每个人都做得很好。我有一个我不知道是否可能的问题。
我有一些代码(我将在稍后发布),一旦在excel中按下按钮,该代码会将数据从Excel中取出并将其注入到Access中的表中。我现在想知道excel是否有一种方法可以允许某人在他们的计算机上查找文件,将其保存,然后将其与所有其他数据元素一起上传到Access数据库中(我知道可以有一个包含附件的访问权限字段)。是否有可能在按钮后面加上一些代码,使该按钮可以使excel保留该人要上传的文件,然后使用下面代码的一些变体将其也传输到Access数据库,并传递到Access拥有的正确附件字段中?
非常感谢您一直以来的投入。
这是我使用了很长时间的当前代码:
Dim cn As ADODB.Connection,rs As ADODB.Recordset,r As Long
' connect to the Access database
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\filepath_goes_here\access_database_Name;"
' open a recordset
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.Open "Plan_Items",cn,adOpenKeyset,adLockBatchOptimistic,adCmdTable
' all records in a table
On Error GoTo transerror
cn.BeginTrans
r = 14 ' the start row in the worksheet
Do While Len(Range("A" & r).Formula) > 0
With rs
.AddNew ' create a new record
' add values to each field in the record
.Fields("UserName") = Range("X" & r).Value
.Fields("BuyerName") = Range("A" & r).Value
.Fields("PlanYear") = Range("B" & r).Value
.Fields("Category") = Range("C" & r).Value
.Fields("RMIType") = Range("D" & r).Value
.Fields("RMIName") = Range("E" & r).Value
.Fields("GINS") = Range("U" & r).Value
.Fields("COGSPlan") = Range("V" & r).Value
.Fields("KFImpDate") = Range("F" & r).Value
.Fields("PImpDate") = Range("I" & r).Value
.Fields("TImpDate") = Range("L" & r).Value
.Fields("AImpDate") = Range("O" & r).Value
.Fields("KFProb") = Range("G" & r).Value
.Fields("PProb") = Range("J" & r).Value
.Fields("TProb") = Range("M" & r).Value
.Fields("AProb") = Range("P" & r).Value
.Fields("KFAnnualized") = Range("H" & r).Value
.Fields("PAnnualized") = Range("K" & r).Value
.Fields("TAnnualized") = Range("N" & r).Value
.Fields("AAnnualized") = Range("Q" & r).Value
.Fields("DescOfRMISavings") = Range("R" & r).Value
.Fields("ExplOfPlannedSavingsCalc") = Range("S" & r).Value
.Fields("ExplainImpDate") = Range("T" & r).Value
.Fields("UnitsOfMeasure") = Range("Y" & r).Value
.Fields("KF_CYRealized") = Range("AJ" & r).Value
.Fields("P_CYRealized") = Range("AK" & r).Value
.Fields("T_CYRealized") = Range("AL" & r).Value
.Fields("A_CYRealized") = Range("AM" & r).Value
.Fields("KF_FollowingYearRealized") = Range("AN" & r).Value
.Fields("P_FollowingYearRealized") = Range("AO" & r).Value
.Fields("T_FollowingYearRealized") = Range("AP" & r).Value
.Fields("A_FollowingYearRealized") = Range("AQ" & r).Value
.Fields("FOBBox") = Range("Z" & r).Value
.Fields("IBFBox") = Range("AB" & r).Value
.Fields("WasteReductionBox") = Range("AD" & r).Value
.Fields("DMUBox") = Range("AA" & r).Value
.Fields("OtherBox") = Range("AC" & r).Value
.Fields("YieldImprovementBox") = Range("AE" & r).Value
.Fields("AnyCheckBoxYes") = Range("AF" & r).Value
.Fields("KFConcept") = Range("AR" & r).Value
.Fields("PConcept") = Range("AS" & r).Value
.Fields("TConcept") = Range("AT" & r).Value
.Fields("AConcept") = Range("AU" & r).Value
.Fields("COGSPlanCheck") = Range("AV" & r).Value
.Fields("CategoryCheck") = Range("AW" & r).Value
.Fields("Round") = Range("W" & r).Value
.Fields("UniqueKey") = Range("AG" & r).Value
.Fields("UniqueKeyWithOriginalRound") = Range("AH" & r).Value
.Fields("UniqueKeyWithNewRound") = Range("AI" & r).Value
.Fields("Hurdles") = Range("AY" & r).Value
.Fields("Department") = Range("AZ" & r).Value
' add more fields if necessary...
End With
r = r + 1 ' next row
Loop
rs.UpdateBatch 'injects full table from excel into access at the same time,eliminating possible errors with inserting certain rows over others
cn.CommitTrans 'makes sure that there were no errors before sending off all of the data
cn.Execute "Plan_Items_Qry_UniqueKey_Update_Plan_Items"
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。