Russellbrown
asked on
Access VBA - DoCmd.RunCommand acCmdRefreshSharePointList
I have a routine that when executed in Excel 2010/Access 2010 works fine. But when I run the same routine on Excel 2003/Access 2003, I have a compile error at line DoCmd.RunCommand acCmdRefreshSharePointList : Variable not defined
The code as follows:
Function RefreshSharePointLinkToTab le()
Dim dbs As Database
Set dbs = CurrentDb()
Dim exWB As Excel.Workbook
Dim exSheet As Excel.Worksheet
Dim AccountChoice As String
Dim excelark As Object
Dim sql As String
Dim rst As Object
Set excelark = GetObject(, "Excel.Application")
Set exWB = excelark.ActiveWorkbook
Set exSheet = exWB.Worksheets("Sheet1")
AccountChoice = exSheet.Cells(1,1).Value
sql = "SELECT * FROM [" & AccountChoice & "];"
Set rst = dbs.OpenRecordset(sql, dbOpenDynaset)
If rst.Updatable Then
DoCmd.SelectObject acTable, AccountChoice, True
DoCmd.RunCommand acCmdRefreshSharePointList <<<< variable not defined
rst.Close
End If
Set dbs = Nothing
Set exSheet = Nothing
Set excelark = Nothing
Set exWB = Nothing
Set exSheet = Nothing
End Function
I step over the codes and the variable (.e.g. AccountChoice ) was correctly sourced. Would appreciate your help to debug the error.
Please note rst.Updatable returns True and Accountchoice exists as a list in SP ( say ListABC) as well as a linked table, ListABC in Access .
The code as follows:
Function RefreshSharePointLinkToTab
Dim dbs As Database
Set dbs = CurrentDb()
Dim exWB As Excel.Workbook
Dim exSheet As Excel.Worksheet
Dim AccountChoice As String
Dim excelark As Object
Dim sql As String
Dim rst As Object
Set excelark = GetObject(, "Excel.Application")
Set exWB = excelark.ActiveWorkbook
Set exSheet = exWB.Worksheets("Sheet1")
AccountChoice = exSheet.Cells(1,1).Value
sql = "SELECT * FROM [" & AccountChoice & "];"
Set rst = dbs.OpenRecordset(sql, dbOpenDynaset)
If rst.Updatable Then
DoCmd.SelectObject acTable, AccountChoice, True
DoCmd.RunCommand acCmdRefreshSharePointList
rst.Close
End If
Set dbs = Nothing
Set exSheet = Nothing
Set excelark = Nothing
Set exWB = Nothing
Set exSheet = Nothing
End Function
I step over the codes and the variable (.e.g. AccountChoice ) was correctly sourced. Would appreciate your help to debug the error.
Please note rst.Updatable returns True and Accountchoice exists as a list in SP ( say ListABC) as well as a linked table, ListABC in Access .
ASKER
Hi,
In Excel 2003, MS Access 11.0 Object Library is already in the VBA>Tools>References and in Access 2003, MS Excel 11.0 Object Library as well.
R
In Excel 2003, MS Access 11.0 Object Library is already in the VBA>Tools>References and in Access 2003, MS Excel 11.0 Object Library as well.
R
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
well don't hv all your variable when I run it the first line CurrentDB() is obviously set to nothing here so can't go further. Anything more you can supply to help troubleshoot this would be a plus.
gowflow
gowflow
ASKER
in Excel 2010 which is working fine, it is 626. In Excel 2003 it is empty/null. Don't know what is the significance of this value and why there is a difference.
Hv you tried putting it this way ? replace this line
DoCmd.RunCommand acCmdRefreshSharePointList
by this line
DoCmd.RunCommand 626
gowflow
DoCmd.RunCommand acCmdRefreshSharePointList
by this line
DoCmd.RunCommand 626
gowflow
ASKER
I recd an error message: The RunCommand action was cancelled. Err Number 2501.
The DoCmd.RunCommand 626 works only for Access 2010 and not for Access 2003. Do you have an equivalent code? Thanks.
The DoCmd.RunCommand 626 works only for Access 2010 and not for Access 2003. Do you have an equivalent code? Thanks.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Honestly I don't know what to say as never used share point either so I guess good luck !
What I found is that in Excel 2003 when you add the Access library although you get in the snipset list the property acCmdRefreshSharePointList listed and you can choose it,
however what is intriguing is that when you lookup help and check all the commands that are listed you do not find this command. So maybe this leads to the conclusion that this command was not available in 2003 but unfortunately I cannot confirm this statement nor deny it as no pervious experience with share point.
gowflow
What I found is that in Excel 2003 when you add the Access library although you get in the snipset list the property acCmdRefreshSharePointList
however what is intriguing is that when you lookup help and check all the commands that are listed you do not find this command. So maybe this leads to the conclusion that this command was not available in 2003 but unfortunately I cannot confirm this statement nor deny it as no pervious experience with share point.
gowflow
ASKER
Hi both,
<<Does your share point list appear like a linked table in your Access database?>> Yes (orange icon )
Thank you for the heads-up. I have a routine ( although that was not the original purpose ) that re-links to the Share Point list - as part of the error handling step. It is alright as a workaround since Access 2003 does not have a feature to refresh the link using VBA.
<<Does your share point list appear like a linked table in your Access database?>> Yes (orange icon )
Thank you for the heads-up. I have a routine ( although that was not the original purpose ) that re-links to the Share Point list - as part of the error handling step. It is alright as a workaround since Access 2003 does not have a feature to refresh the link using VBA.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Yes it works as an acceptable workaround and good to know that that is the best one can do from Access 2003. Thank you.
OK
OOPS revewing my post.
If your using Excel just add a reference to the Microsoft Access Library in your project and that should be ok.
gowflow