Обновить таблицу, связанную с Sharepoint, в Access? - PullRequest
1 голос
/ 08 сентября 2010

У меня есть таблица доступа в 2007 году, которая связана со списком sharepoint.Когда новая запись добавляется в список sharepoint, это изменение автоматически не отражается в таблице доступа.Если вы щелкнете правой кнопкой мыши по связанной таблице, есть опция «обновить список», которая работает точно так, как вы ожидаете.

Мой вопрос: как выполнить эту опцию программно с PowerShell или чем-то подобным?(.netish)

ДОПОЛНЕНИЕ:

Я обнаружил, что acCmdRefreshSharePointList существует как способ выполнить опцию «обновить список».Я пытаюсь использовать его с powershell:

$app = New-Object -ComObject access.application
$app.OpenCurrentDatabase("C:\foo.accdb")

$acCmd = "acCmdRefreshSharePointList" 
$app.DoCmd.RunCommand($accCmd)

Я надеюсь, что эта последняя строка приведет к обновлению таблицы, связанной с sharepoint.Однако я получаю следующую ошибку:

Исключение, вызывающее «RunCommand» с аргументом (ами) «1»: «Несоответствие типов. (Исключение из HRESULT: 0x80020005 (DISP_E_TYPEMISMATCH))» В строке: 1char: 22 + $ app.DoCmd.RunCommand <<<< ($ acCmd) + CategoryInfo: NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId: ComMethodTargetInvocation </p>

Может кто-нибудь пролить свет на то, что яможет быть неправильно, или альтернативные методы обновления этого списка?

Ответы [ 2 ]

2 голосов
/ 09 сентября 2010

Вы загружаете переменную Powershell текстовой строкой, которая является именем константы доступа, о которой она не знает.Попробуйте вместо этого значение константы:

$acCmd = 626
$app.DoCmd.RunCommand($accCmd)
0 голосов
/ 09 сентября 2010
'Refresh Sharepoint table.
'Open recordset, requery and close recordset
On Error Resume Next
Debug.Print Now(), "Refreshing Sharepoint Main Menu"
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("Select * from
    yourtablename")
DoCmd.Requery
DoEvents
rs.Close  

Испытанный и верный метод, который я использовал в производстве более года.

...