foutje, maar waar?

Status
Niet open voor verdere reacties.

jvondermans

Gebruiker
Lid geworden
14 feb 2005
Berichten
75
Ik heb de volgende code (gekopieerd van een blog):

Code:
Sub RefreshSharePointLinks()    
   Dim dbs As Database
   Set dbs = CurrentDb()
   For Each tbl In dbs.TableDefs
      If (Mid(tbl.Name, 1, 1) <> "~") And ((tbl.Attributes And dbAttachedTable) = dbAttachedTable) Then
         'Gotta check for "lijst met gebruikersgegevens" cuz it's not refreshable.
         If Left(tbl.Name, 21) <> "lijst met gebruikersgegevens" Then
         	DoCmd.SelectObject acTable, tbl.Name, True
         	DoCmd.RunCommand acCmdRefreshSharePointList
         End If
      End If
   Next
End Sub

Maar bij het uitvoeren krijg ik een foutmelding "2046 fout bij uitvoering", sharepointlijstvernieuwen is niet beschikbaar.

Iemand een idee waar dat in kan zitten en eventueel waar ik deze code anders kwijt moet. Ik ben redelijk nieuw met VBA, dus kan zijn dat hij ergens anders moet. Ik heb hem nu achter een knop op het schakelbord in Access.

Alvast bedankt voor het meedenken
 
Lijkt erop dat die gebruikt wordt i.c.m. een Microsoft SharePoint server. Als je zo'n SharePoint server niet hebt, dan werkt het niet.

Tijs.
 
Als je code kopieert dan is het handig als je exact begrijpt wat die code doet en hoe jij die toe kan passen.
Als je dat inzicht niet hebt, is het beter om zelf (te leren) code te schrijven.

Begin anders eens met in Jip en Janneke taal te vertellen (dus zonder meteen in code te denken) wat de bedoeling is, hoe en waar.

Grtz,

Tardis
 
Ok inderdaad misschien handig om te vertellen wat de achterliggende gedachte is.

Ik heb inderdaad een sharepoint server met daarop een aantal lijsten. In sharepoint is het mogelijk velden te hebben met daarin meerdere waarden. Dit kan door middel van het invullen van meervoudige drop-downlisten.

Als ik in de de velddefinitie op de sharepoint server iets wijzig, dan wordt dat niet automatisch door Access bijgewerkt. Dat kan je normaal alleen doen door naar de gekoppelde sharepoint lijst te gaan (in access) bij de objecten en dan via de rechtermuisknop te kiezen voor vernieuwen.

Aangezien er mensen mee gaan werken die ik die handelingen niet iedere keer wil laten doen wil ik dat automatiseren.
Ik heb al het een en ander in VBA gedaan met query's, maar dit is andere koek. Ik kan wel lezen wat hij doet, maar er is nagenoeg niets te vinden over VBA en sharepoint.

Ik heb dus geen idee wat er verkeerd gaat in de code en waar ik die het beste in de DB kan hangen.

Alvast bedankt voor het meedenken tot zover, en als jullie een andere oplossing hebben héél graag.

Groetjes,
Jordy
 
Heeft hier nog nooit iemand me te maken gehad? of moet ik het nog duidelijker uitleggen. Maakt me niet uit, maar het zou heeel fijn zijn als iemand me kon helpen.

Ik echt nergens documentatie vinden.

Alvast erg bedankt voor elke vorm van hulp!!!

Jordy
 
Re: foutje maar waar

Hi,
ik ben met exact dezelfde constructie bezig, automatisch een linked sharepoint table updaten. Ik heb slechts 1 table die ik hoef te refreshen zodat de code wat simpeler is.
Goede nieuws is dat het bij mij wel werkt (meestal :confused:).

Voor het geval je het probleem nog niet hebt opgelost:
- check welke tabellen er gerefreshed gaan worden (dus voor welke tbl.Name wordt dit aangeroepen) en/of ontdek bij welke table de refresh de foutmelding geeft
- voer voor deze tabellen handmatig de refresh aktie uit en check of die foutloos werken: rechtsklikken op de linked table in MS Access en kies SharePointListOptions.Refresh List

Hopelijk helpt dit.

Alternatief is te werken met een TableDef.RefreshLink call, dit lijkt ook te werken maar heb ik nog niet helemaal getest. Ook in de documentatie kan ik niet vinden of de RefreshLink zou moeten werken voor Sharepointlists maar uit m'n tests lijkt dit wel te werken.
stukje voorbeeld code:
Set mytdef = CurrentDb.TableDefs(tbl.Name)
mytdef.RefreshLink
....


Soms komt bij mij de verbinding met SharePoint niet tot stand, dat geeft een error die je met een ErrorHandler kan opvangen en met een foutmelding/waarschuwing kan processen.

succes,
Victor
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan