Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用Outlook VBA将数据插入SharePoint表(如何加快此过程?)_Sql_Vba_Sharepoint_Outlook - Fatal编程技术网

Sql 使用Outlook VBA将数据插入SharePoint表(如何加快此过程?)

Sql 使用Outlook VBA将数据插入SharePoint表(如何加快此过程?),sql,vba,sharepoint,outlook,Sql,Vba,Sharepoint,Outlook,我编写了一个宏,它从电子邮件正文中获取一些数据,然后将这些数据插入SharePoint表。 删除电子邮件正文和将数据插入SharePoint都很好,但插入部分需要很长时间(每次执行大约2分钟) 代码如下: Public Const sDEMAND_ROLE_GUID As String = "{111111111-2222-3333-4444-111111111111}" Public Const sSHAREPOINT_SITE As String = "https://randomshare

我编写了一个宏,它从电子邮件正文中获取一些数据,然后将这些数据插入SharePoint表。 删除电子邮件正文和将数据插入SharePoint都很好,但插入部分需要很长时间(每次执行大约2分钟)

代码如下:

Public Const sDEMAND_ROLE_GUID As String = "{111111111-2222-3333-4444-111111111111}"
Public Const sSHAREPOINT_SITE As String = "https://randomsharepoint.com/sites/test/"

Sub insertIntoSharePoint()
Dim cn      As ADODB.Connection
Dim sConn   As String
Dim sSQL    As String

sConn = "Provider=Microsoft.ACE.OLEDB.12.0;WSS;IMEX=0;RetrieveIds=Yes;" & _
"DATABASE=" & sSHAREPOINT_SITE & ";" & _
"List=" & sDEMAND_ROLE_GUID & ";"

Set cn = New ADODB.Connection

sSQL = "INSERT INTO [TEST TABLE]([Test1], [Test2], [Test3], [Test4], [Test5], [Test6], [Test7], [Test8], [Test9], [Test10], [Test11])" & _
        "VALUES ('TestVal1', 'TestVal2','TestVal3','TestVal4','TestVal5','TestVal6','TestVal7','TestVal8','TestVal9','TestVal10','TestVal11');"

With cn
    .ConnectionString = sConn
    .Open
    .Execute sSQL 'This is the line that takes most of the runtime'
    .Close
End With

Set cn = Nothing
MsgBox "Item successfully added to SharePoint"
End Sub
有没有办法优化这段代码? 还是执行速度慢仅取决于internet连接/计算机薄弱?
或者你有其他解决主要问题的方法吗?(废弃电子邮件正文并将其插入SharePoint列表)

嗯,VBA天生就很慢。也许您可以将Outlook中的所有内容导入Access/Excel,然后从Access/Excel中获取SharePoint数据

在要添加基于电子表格的列表的网站上,转到设置Office 365设置按钮,然后单击添加应用

在查找应用程序字段中,键入电子表格,然后单击搜索图标搜索框放大镜图标。 查找输入电子表格并突出显示搜索按钮的应用程序字段

在搜索结果页面中,单击导入电子表格。 “导入电子表格应用”在“新建应用”对话框中高亮显示

在“新建应用程序”页面中,键入列表的名称

该名称在大多数视图中显示在列表的顶部,成为列表页面的网址的一部分,并显示在网站导航中以帮助用户查找列表。您可以更改列表的名称,但网址将保持不变。 填写名称和文件位置的“新建应用”对话框,突出显示“导入”

键入可选说明

在大多数视图中,说明显示在名称下方。您可以随时使用列表设置更改列表的说明

浏览到或键入电子表格的文件位置。完成后单击导入

电子表格将在Excel中打开,您将看到“导入到Windows SharePoint Services列表”窗口

在“导入到Windows SharePoint Services列表”窗口中,选择“表范围”、“单元格范围”或“命名范围”。如果要手动选择范围,请选择单元格范围,然后单击“选择范围”。在电子表格中,单击左上角单元格,按住Shift键,然后选择所需范围的右下角单元格。 突出显示范围的Excel电子表格

范围将显示在“选择范围”字段中。单击导入。 “导入到电子表格”对话框,其中“导入”高亮显示

导入电子表格后,请检查列表的列,以确保按预期导入数据。例如,您可能希望指定列包含货币而不是数字。要查看或更改列表设置,请打开列表,单击列表选项卡或单击设置Office 365设置按钮,然后单击列表设置

电子表格数据将显示在SharePoint中的列表中。 SharePoint Online中的列表

有关更多信息,请参阅下面的链接


Hey@ryguy72,感谢您提供非常全面的答案!我已经用C#解决了这个问题(使用VBA时,它在4秒内加载数据,而不是1,5分钟),但我会将您的答案标记为正确,因为它肯定也是处理这个问题的一个好方法。