Source: FIXED: Error 3283 Refresh Links (isladogs.co.uk) - and - RefreshLink fails with "Primary Key already exists" (accessforever.org) - Thanks!
I came across error 3283 - Primary key already exists after the MS Office system had been updated to version 2312 Build 16.0.17126.20190 for Monthly Enterprise Channel.
The error happens when calling RefreshLink as shown in the code sample below. Disclaimer: This worked for me, but your solution might be different. The solution "for now" is to use On Error Resume Next and deal with the error afterwards as the table does in fact relink just fine. Microsoft say that a fix will not be released until March 12th 2024 in version 2401. So you will need to implement this work around until it's resolved.
For Each tblDef In tblDefs
If tblDef.Connect <> "" Then
If InStr(1, tblDef.Connect, "ODBC") > 0 Then
'SQL Server Database
If (tblDef.Connect <> strSQLConnectionString) Or blnForceReconnect Then
tblDef.Connect = strSQLConnectionString
' Error 3283 when refreshing links using code caused by MS Office Update 2312 Build 16.0.1716.20190
' A fix will be applied by Microsoft on March 12th 2024 Office Updates for build 2401.
On Error Resume Next
tblDef.RefreshLink
' This is required if the SQL View is to be update-able
If tblDef.Name = "vw_Example" Then
CurrentDb.Execute "CREATE UNIQUE INDEX __uniqueindex ON " & tblDef.Name & " (ID ASC)"
End If
Err.Clear
On Error GoTo ErrorHandler
End If
End If
End If
Next tblDef
Thanks to Isladogs on Access and Access Forever for this post.