Link to home
Start Free TrialLog in
Avatar of shambalad
shambaladFlag for United States of America

asked on

Control can't be edited; bound to replication system column

I am working in Access 2010 (32 bit).
I have a simple table I set up to do some quick processing on tables in my database (.accdb). The name of the table is "tbls". It has one field in it: 'Name'. Yes, I know that is not a good 'name' for a field. It's actually the name of the field from the MSysObjects table which is where I extracted the table names from to begin with; but I digress.
Anyway, I opened this table in datasheet view and tried to change the value of the data in the Name field. The field is locked. On the bottom of my window is the message:

Control can't be edited; it's bound to replication system column 'Name'

I don't know what this means or what to do about it. Can someone help me?
Avatar of Rey Obrero (Capricorn1)
Rey Obrero (Capricorn1)
Flag of United States of America image

upload a copy of the db
Avatar of shambalad

ASKER

I'll see if I can isolate the table for upload. Db has proprietary information. I just got an emergency call from a client (networking issue) and am heading to his office. I'll be back in an hour or two.
Before anything else, make a copy to the Table (and/or db) then do a Compact & Repair.

mx
Ran compact and repair: No change.
Created new database and imported table into it. It's still behaving the same way.
I've attached the db.
BTW: is anyone else having problems keying in the required description for attachments? I'm finding it to be one squirrely textbox. I can't see the contents of the textbox when I'm keying into it; basically I have to type blindly into it.
Locked-Table.accdb
I've replicated creating a table with this behavior. Ran the following query in the 'Locked-Table.accdb' db:

SELECT Name, Owner, Type INTO tblMsysObjectsExtract FROM MSysObjects;

The fields in tblMsysObjectsExtract are locked and have the same message.
I created a new field (xName), saved, then pasted in the data ... and that can be edited.

Where did this db originate from ?  Was it at one time a replilcation db?

mx
Interesting that this field cannot be deleted either.  Possibly in could in code using ALTER >> DROP COLUMN.

mx
This db was created from 'scratch', so to speak. I imported a table that I had created and loaded myself. Created a new table using a similar query as above. Fields are not locked. It's appearing to be related to the system tables.
Created another table from another system table:

SELECT ACM, FInheritable, ObjectId, SID INTO tblMSysACEsExtract FROM MSysACEs;

Same error.
Yeah ... I missed your previous comment.

Can't delete than field in code either ... just tried.

Interesting the MakeTable does this ...

mx
Opened tblMSysACEsExtract in Design mode. Did a Save As 'tblMSysACEsExtractSaveAS'.
Loaded tblMSysACEsExtractSaveAS with the following SQL:

INSERT INTO tblMSysACEsExtractSaveAS ( ACM, FInheritable, ObjectId, SID )
SELECT ACM, FInheritable, ObjectId, SID
FROM tblMSysACEsExtract;

Same error with tblMSysACEsExtractSaveAS.
ASKER CERTIFIED SOLUTION
Avatar of shambalad
shambalad
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
"It's appearing to me that Access doesn't want me to touch its system tables,"

Pretty much. And there is no guarantee that the MSys tables won't change from version to version ... so, extracting data directly might be iffy, depending on the intended use.

mx
test this, get the names of table using the codes in module1 and store in table1
Locked-Table.accdb
Thank you for the routine Cap.
I am using a variation on that theme:

Private Function GetTbls()
      Const strProcedure As String = "GetTbls"
      Dim varTbls() As Variant
      Dim tdf As DAO.TableDef
      Dim db As DAO.Database
      Dim i As Integer
10    On Error GoTo ErrorHandler

      ' Returns array of Tables
20    GetTbls = Null
30    Set db = CurrentDb
40    With db
50       For Each tdf In .TableDefs
60          With tdf
70             Select Case True
                    Case .Name Like "msys*"
80                Case .Name Like "~*"
90                Case .Name Like "tblDd*"
100               Case Else
110                  i = i + 1
120                  ReDim Preserve varTbls(1 To i)
130                  varTbls(i) = .Name
140            End Select
150         End With          'With tdf
160      Next tdf             'For Each tdf In .TableDefs
170   End With                'With db

180   GetTbls = varTbls
ExitFunction:
190   On Error Resume Next
200   Set db = Nothing
210   On Error GoTo 0
220   Exit Function

ErrorHandler:
230   Debug.Print strProcedure, Err, Err.Description, Erl
240   Resume ExitFunction
End Function
Cap - I appreciate your help. Nonetheless, I hope you understand that I'm not accepting your comment as the answer since it does not address the central question which is why those fields are not updatable.
I have done a lot more research into this, and have come across some other questions about 'updatable' fields which I will be posting shortly.
Regards,
Todd
Fields derived from msys tables are not updateable.