shambalad
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?
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?
upload a copy of the db
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
mx
ASKER
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
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
ASKER
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.
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
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
mx
ASKER
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.
ASKER
Created another table from another system table:
SELECT ACM, FInheritable, ObjectId, SID INTO tblMSysACEsExtract FROM MSysACEs;
Same error.
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
Can't delete than field in code either ... just tried.
Interesting the MakeTable does this ...
mx
ASKER
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.
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
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
"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
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
Locked-Table.accdb
ASKER
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
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
ASKER
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
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
ASKER
Fields derived from msys tables are not updateable.