Poruka o pogrešci kada pokušate otvoriti povezanu tablicu SharePoint u programu Access 2007: "modul baze podataka programa Microsoft Office Access ne može pronaći objekt"

Simptomi

Kada pokušate otvoriti povezanu tablicu Microsoft Windows SharePoint Services u Microsoft Office Access 2007, možete dobiti poruku o pogrešci koja nalikuje sljedećoj poruci o pogrešci:

Modul baze podataka programa Microsoft Office Access ne može pronaći objekt 'naziv objekta'. Provjerite je li objekt postoji i pravilno napisali njegov naziv i put.

Međutim, povezane tablice SharePoint otvara uspješno. Ova poruka o pogrešci pojavljuje nakon što ažurirate povezanu tablicu SharePoint programski više vremena u retku korištenjem metode objekte pristupa podacima (DAO) RefreshLink .

Uzrok

Taj se problem pojavljuje jer metoda RefreshLink zanemaruje odnose tablice koje se stvaraju tijekom prethodni poziv na metodu.

Zaobilazno rješenje

Da biste zaobišli taj problem, programski izbrisati odnose između tablica prije koristite metodu RefreshLink za ažuriranje povezane tablice.

Uzorak potprogram za brisanje odnosa

Korištenje potprogram za brisanje odnosa osvježiti vezu, slijedite ove korake:

  1. Umetanje sljedećeg koda u modul u Microsoft Visual Basic for Applications (VBA):

    Public Sub RemoveInvalidRelationships(strTableName As String)    On Error Resume Next    Dim cnt As Integer    Dim i As Integer    Dim bForeignTable As Boolean    Dim bTable As Boolean    Dim td As TableDef        cnt = CurrentDb.Relations.Count - 1    ' Go through the relationships collection backwards, to ensure that if we delete one, we will have a valid index    For i = cnt To 0 Step -1        bTable = False        bForeignTable = False        If (StrComp(CurrentDb.Relations(i).Table, strTableName, vbTextCompare) = 0) Then bTable = True        If (StrComp(CurrentDb.Relations(i).ForeignTable, strTableName, vbTextCompare) = 0) Then bForeignTable = True                If bTable Xor bForeignTable Then            ' Determine if either the table or foreign table is the table that we are interested in            ' We will then look at the other table to determine if it exists            ' If it doesn't exist, delete the relationship            If bTable Then                Set td = CurrentDb.TableDefs(CurrentDb.Relations(i).ForeignTable)            Else                Set td = CurrentDb.TableDefs(CurrentDb.Relations(i).Table)            End If                        If Err.Number = 3265 Then                CurrentDb.Relations.Delete CurrentDb.Relations(i).Name            End If            Err.Clear        End If            Next iEnd Sub
  2. Šifru izvora gdje se zove metodu RefreshLink umetnite sljedeći kod neposredno prije redak izvornog koda RefreshLink:

    RemoveInvalidRelationships "WSSLink"

    Napomena "WSSLink" je naziv povezane tablice osvježavaju metodom RefreshLink .

Status

Microsoft je potvrdio da se taj problem pojavljuje u Microsoftovim proizvodima navedenima u odjeljku "Odnosi se na".

Potrebna vam je dodatna pomoć?

Proširite svoje vještine
Istražite osposobljavanje
Prvi koristite nove značajke
Pridružite se Microsoft Insidere

Jesu li ove informacije bile korisne?

Hvala vam na povratnim informacijama!

Hvala vam na povratnim informacijama! Čini se da bi vam pomoglo kad bismo vas povezali s nekim od naših agenata podrške za Office.

×