从访问共享点移动多个查询

时间:2012-07-31 18:59:30

标签: sharepoint ms-access ms-access-2007 access-vba

首先,我在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,登录,密码

我自己得到一个运行时错误3841,我希望至少那部分有效。有没有人有任何建议?

感谢您的帮助, 扎克

1 个答案:

答案 0 :(得分: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