I have started to experience this problem at a client and it is embarrassing.
Let me explain how my procedure works.
When my access front-end launches from the client computer the first thing it does is check the data tables to see if they are linked.
I do this by running through the table definitions and comparing them to tables that should be on the back-end on the server. (See Code)
******************************************************************************************
For Each tdf In db.TableDefs
'If connect is blank, its not an Linked table
If Len(tdf.Connect) > 0 Then
'Debug.Print tdf.Name
'Check to see if it is a data table
sSQL = "SELECT * FROM tblSystemTables WHERE Location = 'DATA' AND TableName='" & tdf.Name & "'"
Set rs = CurrentDb.OpenRecordset(sSQL)
If Not rs.EOF Then
tdf.Connect = ";DATABASE=" & sDataLoc
' The RefreshLink might fail if the new path
' isn't OK. So trap errors inline.
On Error Resume Next
tdf.RefreshLink
'If one link bad ...
If Err <> 0 Then
iErrCnt = iErrCnt + 1
Debug.Print tdf.Name; " Not Found"
End If
On Error GoTo 0
End If
rs.Close
End If
varReturn = SysCmd(acSysCmdUpdateMeter, intI + 1)
Next tdf
****************************************************************************************************
Now in troubleshooting this I discovered that the initial attempt to access a linked table was refused. This of course caused my error count to increase making my program assume the data was not available. My procedure when this happens is to request new
information from the user using an open dialog box to determine the back-end's new location.
I found however that the linked tables were in fact properly linked. And when I attempted to re-link them I could not verify they were linked properly. Then I tried just canceling out of my dialog box and the database bypassed the relink and opened properly.
I instructed the users to just hit cancel and that the problem was in work.
After typing this I think I will loop the table link and check each table 3 times. if it fails 3 times then record it as a failure. If it passes at least once record it as good and move on.
This only happens on one client's network. I have no control over the network administration. And if I were in their position I would not take this as a network problem either. I do believe it is network related and access/win 7 related. As they say
at NASA, it is not one event that causes a catastrophe but a number of events that accumulate into a disaster.