

I when to the link you provided, It talks about KB4484198.

In my case I needed to manually rename back to, as I hadn't marked it as as system table when I created it in the past. If your original queries that used the tables are either of poor quality or very complex. But be aware, that using a query instead of a table can lead to non-optimized statements being executed against a backend database in specific cases, especially I tested this with all kinds of tables, including external non-MDB tables (like SQL Server). RemoveWorkaroundForCorruptedQueryIssue() does the reverse actions. In our example, the query would be named "IceCreams" and would execute the SQL "select * from ". It will also create a new query with the original table name, that will select all columns of the renamed table. the table "IceCreams" would be renamed to "IceCreams_Table". lauxjpn/CurruptQueryAccessWorkaroundĪddWorkaroundForCorruptedQueryIssue() will add the suffix "_Table" to all non-system tables, e.g. You can find the latest code on my GitHub repository: Private Function EndsWith(str As String, ending As String) As BooleanĮndsWith = (Right(Trim(UCase(str)), endingLen) = UCase(ending)) "NewTableName" & vbTab & "" & vbTab & "(Query deleted)" QueryDefs.Delete(originalTableName)ĭebug.Print "OldTableName" & vbTab & "" & vbTab & _

OriginalTableName = Left(tableDef.Name, Len(tableDef.Name) - Len(WorkaroundTableSuffix))Ĭall.

If EndsWith(tableDef.Name, WorkaroundTableSuffix) And Not isSystemTable Then Public Sub RemoveWorkaroundForCorruptedQueryIssue() CreateQueryDef(originalTableName, "select * from ")ĭebug.Print "OldTableName/NewQueryName" & vbTab & "" & vbTab & _ TableDef.Name = tableDef.Name & WorkaroundTableSuffixĬall. If Not EndsWith(tableDef.Name, WorkaroundTableSuffix) And Not isSystemTable Then IsSystemTable = tableDef.Attributes And dbSystemObject Public Sub AddWorkaroundForCorruptedQueryIssue() Private Const WorkaroundTableSuffix As String = "_Table" Use AddWorkaroundForCorruptedQueryIssue() to add the workaround and RemoveWorkaroundForCorruptedQueryIssue() to remove it at any time. As a precaution, backup your database first. Use the following module to automatically implement Microsofts suggested workaround (using a query instead of a table).
