And to answer your 2nd question: Yes,you can. I found 2 routines to remove the "dbo_" prefix.
1st one:
Code:
Public Sub subChangeLinkedTableNames()
Dim dbCurr As DAO.Database
Dim tdfCurr As DAO.TableDef
Set dbCurr = CurrentDb()
For Each tdfCurr In dbCurr.TableDefs
If Len(tdfCurr.Connect) > 0 Then
If Left(tdfCurr.Name, 4) = "dbo_" Then
tdfCurr.Name = Replace(tdfCurr.Name, "dbo_", "")
End If
End If
Next
Set tdfCurr = Nothing
Set dbCurr = Nothing
End Sub
2nd one
Code:
'-------------------------------------------------------------------------------
' Procedure : TruncateDBO
' DateTime : 3/13/2008 06:38
' Author : Donald R. Cossitt
' :
' Purpose : MS has the completely absurd notion that it is somehow
' : important to append 'DBO_' and or other database owner as a
' : prefix to linked tables. This routine truncates 'DBO_' from
' : the tables in the tabledefs collection having that
' : particular malady. However, will truncate any string
' : indicated by the user.
'-------------------------------------------------------------------------------
'
Public Sub TruncateDBO()
Dim tdfTable As DAO.TableDef
Dim i As Integer
Dim szDBOwner As String
szDBOwner = InputBox("Enter prefix to truncate. [case sensitive]", _
"TRUNCATE DB OWNER", "dbo_")
For Each tdfTable In CurrentDb.TableDefs
If Left(tdfTable.Name, Len(szDBOwner)) = szDBOwner Then
i = i + 1
tdfTable.Name = Right(tdfTable.Name, _
Len(tdfTable.Name) - Len(szDBOwner))
End If
Next tdfTable
MsgBox "Truncated : " & i & " table names", vbInformation, "'DBO_' GONE"
End Sub