0

首先,我在 Access 方面很糟糕,在任何不是 .Net 的方面都很糟糕(如您所见,我一直在尝试用 .Net 编写)

我要做的是获取 Access DB 中的每个查询并将其保存在 Sharepoint 列表中。

就像是:

Option Compare Database
Option Explicit

Public Function SendUpdate()
     Dim DB as Access.Db = C:\Test.accdb

     For Each Qry as Query in DB
           DoCmd.TransferDatabase acExport, "WSS", DB, _
           "http://My.sharepointlist.com/list", _
           acQuery, Qry, Qry, True, Login, Password
     Loop
End Function

显然这For Each部分不起作用,但即使我这样做:

DoCmd.TransferDatabase acExport, WSS, DB, http://My.sharepointlist.com/list, acQuery, Qry, Qry, True, Login, Password

就其本身而言,我遇到了一个运行时错误3841,我希望至少这部分有效。有没有人有什么建议?

谢谢你的帮助,扎克

4

1 回答 1

2

您想要的命令如下所示:

DoCmd.TransferDatabase acExport, _
                   "WSS", _
                   "http://YourTargetDatabase/TestSubSite", _
                   acQuery, _
                   "q2", _
                   "q2"

对此的分解是:

DoCmd.TransferDatabase acExport, _
         "WSS", _     (Type of export – WSS)
         "http://YourTargetDatabase"    (target database location), _
         acQuery, _             (type of export)
         "q2",                       (name of query to export)
         "q2"                         (name to create on target system)

您拥有的“存储”密码选项不是连接字符串,也不是密码。这只是要存储的密码的真/假设置——我认为这不适用于 SharePoint,而仅适用于某些类型的 odbc 连接。

因此,如果您当前登录到 SharePoint 网站,则上述内容将在没有密码提示的情况下运行。如果您没有登录,那么您将收到一个登录提示,然后上面应该可以正常工作。

如果您要将其编码为 for/each ,那么语法将如下所示:

Sub TransferQuery()

  Dim qryDef     As DAO.QueryDef

  For Each qryDef In CurrentDb.QueryDefs

     DoCmd.TransferDatabase acExport, _
                   "WSS", _
                   "http://YourTargetDatabase/TestSubSite", _
                   acQuery, _
                   qryDef.Name, _
                   qryDef.Name

  Next


End Sub
于 2012-08-01T03:25:38.670 回答