You can't assign a value to this Object.

"You can't assign a value to this Object." this is a message I get when first trying to enter data into a form. But its a little strange. There is the form and the subform. The subform can work all the work all the nessary functions of the form. The main form is only for visual effect and ease of use.

If I ope the subform and enter data it work fine. Its when the sub is opened through the main form that the problem arises. You can select and enter any info from the subform header but when you go to enter data in the detail section this pops up.

"You Can't assign a value to this object.

The object may be a control on a read-only form.
The object may be on a form that is open in design view.
The value may be to large for this field."

Now I know the last two are not the case and I pretty sure that the fist one is not the case also. So any idea what setting I have edited to cause this.


Post your answer or comment

comments powered by Disqus
I am trying to set the Control Source for a textbox = to a function in a global module that contains an elseif calculation. When I open the form, I get the error "You Can't Assign a Value to This Object".

Anyone know why I get the error?

Attached is a very simple database to illustrate what I am trying to do:

Hi ,

I have a access 2007 database that is running on windows 7 32bit, recently we upgraded or pc and now have 64 bit version of windows 7 with access 2007 32 bit. After the upgrade i not get the following error

Err number -2147352567
You can't assign a value to this object

This occurs when I am trying to add a new record on a form from another form

the code is as follows, it is failing on the second line

DoCmd.GoToRecord , , acNewRec
Me.txt_SITE_ID = CLng(sArgs(1))

txt_SITE_ID is a text box control and it does have a field in the control source property.

This all works though on windows 7 32bit. does anyone have an idea how to resolve this, i should mention also half of us are still on 32bit.

I have searched the forums and I don't see this problem. I have a split database. When I test it it works fine. It resides on a network drives and permissions have been checked. When users try it they get an error message that says "you can't assign a value to this object". This occurs after they have selected a project and the user form opens. The user form appears blank.

I have gone to other offices and if I am signed on to their machines it works but if they are the message comes up. I'm at a complete loss and need some advice. It's probably as plain as the nose on my face but I've been struggling for days.

By the way - I used to be Mrs.Meeker...I haven't been around for a long time.

I have a form based on a query for viewing and entering data. It is a stock form and I have three fields from the query (Order value, Shipping Supplement and Postage) which are totalled into a Total Cost field. If I try to change one of the values I get an error message saying "you can't assign a value to this object", I close the VB window and everything has actually updated properly. How do I stop the error message as nothing seems to be wrong?

The code for the calculated field is:

Private Sub OrderValue_AfterUpdate()

Me![Amountpaid] = (Me![OrderValue] + Me![ShippingSupplement] + Me![Postage])

End Sub
Private Sub ShippingSupplement_AfterUpdate()

Me![Amountpaid] = (Me![OrderValue] + Me![ShippingSupplement] + Me![Postage])

End Sub
Private Sub Postage_AfterUpdate()

Me![Amountpaid] = (Me![OrderValue] + Me![ShippingSupplement] + Me![Postage])

End Sub

And I have =[OrderValue]+[ShippingSupplement]+[Postage] as the source

I am getting the error 'You can't assign a value to this object' when opening a form to create a new record. The form then goes blank. The form is reasonably complex with 5 sub-forms and a over 50 fields on the page.

My problem is that I can't figure out what is causing this error. How can I best trace this error? Access error reporting leaves an awful lot to be desired, I find it very frustrating like I'm fumbling around in the dark until I stumble across a solution that works. I am relatively inexperienced with access so it could be that it's my lack of access knowledge regarding bug tracking that is the problem here.

Anyhow, help would be appreciated!

I have a form called Contacts and inside that a subform called PubOrders and inside that a subform called Publications (which contains a list box that looks up our pubs in another table). When I'm in the list box field, the drop-down list works fine, but after I make the selection, I get an error message:

iMicrosoft Access
You can't assign a value to this object.
* The objct may be a control on a read-only form.
* The object may be on a form that is open in Design view.
* The value may be too large for this field.

I know all of my relationships are okay, because previously sold publications are showing up fine under their respective Contacts. (For reasons that I won't detail here, I had to update the tables and recreate relationships between Contacts/PubOrders/Publications/ListOfPubs.)

Why do I keep getting the error "You can't assign a value to this object" when I enter a value into a list or combo box in a subform from the parent form in Form View. It is not a read-only form and the subform is closed and the value is not too large for the field. It is from a list. This is in a continuous form and happens in the first field that I attempt to enter per row, but not with the other fields.

Another question is how can I make a list box to show multiple rows like a combo box does?

I have a Form and Subform. Whenever I start to update the subform section, I get the error "You can't assign a value to this object". When I click okay, I can then update the subform and my table is updated correctly. This error box only occurs when I initially try to update the subform, and any subsequent entry I make while keeping the form open is fine. It's just on the first attempt to update, and aside from the error popup box, I can't see where it's creating any problem.

Possible causes listed in the error box are, 1) Object may be a control on a read-only form. 2) Object may be on a form that is open in design view. And 3) The value may be too large for this field.

I can't see where any of these apply, especially since the records are updated correctly. Could there be something I'm overlooking which would cause this error?


Hi! Everybody! I'm Delighted to be here. Today I have a Problem and i unable to solve it.
I have Create a Form that Related to Products (I already have Table that connected to that form). These are the Following Texts I have Create:
Product ID: 1
Product Name: Hard Disc
Quantity: 5 units
Unit Price: $30.00
Total: $150.00
Above, is the text that I have created in a Form of Access. The Problem is That When I try to Total Quantity and Unit Price. So I go to Control Source of Total box (in property sheet), in Total Control Source I type:
Then I Clicked Ok, and Save. And Then I click "Form View". I opened in Form View. But when I try to clicked on any Navigation Button (like Next, Previous, First, Last ect...), A Pop up Message Appeared "Microsoft Office Access: You Can't assign a value to this object."
(please try to understand)

Thanks in Advance!!

Getting Error saying:
Run-time error '2448':
You can't assign a value to this object.

I have tried:

If IsNull(Me![Right Side DI Depth]) Then
Me!txtZB.value = Me!txtZA.value
End If

If IsNull(Me![Right Side DI Depth]) Then
Me![Left Side DI Depth] = Me!txtZA.value
End If

I have attached a picture with the watches I had running. I just want to test txtZB and if it is Null I want it to take the value of txtZA. txtZB has the control source of [Left Side DI Depth] and txtZA control source [Right Side DI Depth]

Thanks for help. Attached Thumbnails † Reply With Quote 03-30-2010,†11:40 AM #2 pbaldy Who is John Galt? Windows XP Access 2007 Join Date Feb 2010 Location Nevada, USA Posts 9,234 Where is the code? It would need to be in the format event of the section containing the control, not the open event.

Greetings, all.
Run into a snag with a payroll db, appreciate any help you can give me.

Main Form, with ordinary payroll/personnel info--clock no, first and last names,, etc.
Subform for entering regular hours worked, OT hours worked, etc per Period Ending, keyed to main form by SS no. Pretty basic stuff.

Problem is, when we try to enter the first data in the subform, we get this error message :
"You can't assign a value to this object.
*The object may be a control on a read-only form.
*The object may be on a form that is open in Design view.
*The value may be too large for this field."

We get the message in the first field we go to, no matter which field we go to first.
None of the "may be" conditions apply.

When we hit "OK" the message goes away and we can enter our data, the records are created corrected. But as soon as we move to the next record, we get the same error.

Any idea why we're getting this error message?

Thanks for looking,

I keep getting a "-2147352567You can't assign a value to this object." when it runs the below code at the Me.PIFCount = h area.

'Count records per Customer Contract number 09/08/2011
M = rsCustTotals.RecordCount
Do While Not rsCustTotals.EOF
If rsCustTotals![Trans Type] = "N" Then
CustAmount = CustAmount + rsCustTotals![Loan Amount]

End If
End If
End If

If CustCount > 0 Then
Me.PIFCount = h
Me.PIFAmount = 0
End If
If CustAmount > 0 Then
Me.PIFAmount = g
Me.PIFAmount = 0
End If

I'm using Access 2003 report to calculate and add total to a textbox on the report. What am I doingggggggggg wrong?

I have a form that has a field (MedicalRecordNumber) which is null. I have another cascade sub form that is linked to that field. When I add a new record I get the following error:

You canít assign a value to this object.

The object may be a control on a read-only form.
The object may be on a form that is open in Design view.
The value may be too large for this field.

I press OK and proceed. Everything works fine.

When I do an update everything is fine.

What am I doing incorrectly?



I try to use this code :

dim ctlc as control

For Each ctlc In Me.Controls
If Not ctlc.Name = "txt_Id_Barang" Then
If ctlc.ControlType = acTextBox Then
ctlc.Value = ctlc.OldValue
End If
End If
Next ctlc

But i got errorr : 2448, You can't assign a value to this object.

how can i solve it?


I am doing something similar to a library system, except it is property. For this you scan the bar code which returns a number.
I am running into an error on my last item PropertyID = Nz.....
It produces a run-time error, you can't assign a value to this object.
I am confused because the DetentionID passed with no issue but PropertyID doesn't, it simply assigns a new ID.

	Option Compare Database
Private Sub Bag__AfterUpdate()
DateIn = Nz(DLookup("DateIn", "tblPropertyDetails", "[BagNum] = '" & [BagNum] & "'"))
PropertyTypeID = Nz(DLookup("PropertyTypeID", "tblPropertyDetails", "[BagNum] = '" & [BagNum] & "'"))
Notes = Nz(DLookup("Notes", "tblPropertyDetails", "[BagNum] = '" & [BagNum] & "'"))
TransferFrom = Nz(DLookup("TransferFrom", "tblPropertyDetails", "[BagNum] = '" & [BagNum] & "'"))
PropertyDestroyed = Nz(DLookup("PropertyDestroyed", "tblPropertyDetails", "[BagNum] = '" & [BagNum] & "'"))
DetentionID = Nz(DLookup("DetentionID", "tblPropertyDetails", "[BagNum] = '" & [BagNum] & "'"))
PropertyID = Nz(DLookup("PropertyID", "tblPropertyDetails", "[BagNum] = '" & [BagNum] & "'"))
End Sub

Any suggestions on why or improving this code?

In Access 2010, when trying to assign a textbox a value using VBA code I'm presented with this error:

Quote: Run-time error '-2147352567 (80020009)':
You can't assign a value to this object. What I'm trying to do is record the date and time whenever a record is modified. I'm using the "Before Update" event to run the following code:

	Private Sub Form_BeforeUpdate(Cancel As Integer)
DoCmd.SetWarnings (WarningsOff)
Me.txtDateChanged = Date
Me.txtTimeChanged = Time()
End Sub

I don't know why it won't work. This is something that seems about as simple as it gets. I've Googled the error and everyone is suggesting missing references and untrusted locations as the cause but neither of those apply to this as I have no missing references and the location is trusted.

Am I missing something ridiculously obvious?

In the line "Me.txtDateChanged = Date", Access keeps removing the () behind Date, I don't know why because it leaves them for Time(). I don't know if that has anything to do with the problem.

If it helps any, I have two different combo boxes on my form. I have one to select location. When you select a location it limits the 2nd combo box's choices. When you make a selection from the 2nd combo box (serial number), the form goes to that specific record.


Wow...Out of curiosity, I just removed the () from "Me.txtTimeChanged = Time()" and it worked without error.

Sigh....I should have known it was something silly. Thank you everyone for thinking about it!

Thought I would share a little discovery I have made after some have-duty wall climbing. You will find dozens of Access forum entries dealing with the above Access message (Runtime Error 2448) and a good portion of those deal with the specific issue of it appearing when starting data entry in subforms. The message says :

You can't assign a value to this object.
*The object may be a control on a read-only form.
*The object may be on a form that is open in Design View
*The value may be too large for this field.

But in reality, once you clear the message (which pops after the first letter was entered), shaking your head because none of the above applies, you are allowed to continue and the record is saved without further complaints or ceremonies and it links correctly and can be edited on further visits.

I have decided to redo my memo fields in one of my databases and place them all in one separate table. The memos are then attached as subforms. I created a pointer field in each of the tables as a master field to link by with a subform. On a couple of occasions prior, I created such a field to easily sort by a unique composite key. Never had any problems using it with subforms. However, in this particuar instance it started to give me this silly message. I say 'silly' because it is transient and says something that is not true. Evidently, you can assign value to this object (in this particular scenario).

First I thought it had to do with the rich text fomat that I have in the Memos (the RTF does not work in Access 2007 subforms but that's another story). But it didn't. So I tried other things and they did not work. Always the same thing. After the first letter typed the message popped up.

I hope I found the solution to this particular form of the 2448 RTE. On one of the boards someone was saying that the master field has to the PK of the main form. I knew that was baloney because I have a number of forms where I use another (unique) key for the master-child coupling with no trouble at all. But then I realized what might be happening. The autonumber of the master form would be supplied early by the Jet/Ace engine and so is available to the before the sub is entered. One can start writing into the sub fields right away and switch to the main form with the record being saved because the link has already been established by the engine coupling. That would not be ....duh.! ... the case when I am supplying the value myself. So it looks like the value of the master - child fields has to be known to both forms before the first stroke hits the subform. Does that make sense ? If it does, then

perhaps a fourth line should be on the Access message saying:

* The object may be on a subform with a Null in the linked Master Field

Hopefully, this info will be of some value to people on this Board. Initializing the subform with the linking key solved the problem for me. At any rate, let me know your thoughts!


I'm getting an error message with the following statement:

If me.emptemp = "Full-time" then
me.employmentstatus = "F"
end if

The message is "You can't assign a value to this object."
The me.employmentstatus = "F" is highlighted.

What is wrong with the code?

Hi - I'm getting the dreaded error 2448 "You can't assign a value to this object". (Have reviewed the forums but can't find an applicable solution.)

This occurrs when I try and asign a value to a control in the parent form of the current subform:

Private Sub SetForecastWarning()
If DSum("useForecast", "Phase", "projID=[Forms]![Project]![projID]") = -1 Then
Me.Parent![ForecastGen] = -1
End If
End Sub

I've also tried [Forms]![Project]![ForecastGen] = -1

Any ideas why I can't assign a value to the field "ForecastGen" in this manner?


In another similar thread, Bob Larson writes: You can't set a value for a bound text box until the LOAD event. The Open event is too early as the recordset has not yet been loaded.

This sub is run from the "Form_Current" event, and occurs when I try and open the parent form. Could this be the problem? If so, can anyone suggest a workaround?

Many thanks.

I am trying to pass a value from form A to form B via openargs.

This is in response to a "notinlist" event on form A. I am opening form B with the openargs set to the "NewData" parameter generated by the notinlist event on form A.

Then, in the OnOpen event for form B, I set a field's value equal to the openarg.
Quote: Me.ctlCell.Value = Me.OpenArgs It's here that I get the runtime error 2448, "You can't assign a value...."

The weird thing is, if I put this exact same line of code behind a button-click, and then click the button after the form is open, it works fine. Why won't this work in the OnOpen event???

I know I've used OpenArgs like this many times before (Unless, of course, I have finally really lost my mind.)

BTW, Form B is being opened in data entry mode, as a dialog box.

Using Access 2002.

Suggestions appreciated.

You cant assign a value to this object??

Why am i getting this error?

How can i fix it?

It comes up and doesn't allow me to add in the form, but then after clicking ok. I am able to enter the data and it enters the query.

But it is still causing problems. When i open up and view the tables, the subdatasets don't pick up on the values stored thru the form that gets the error (You cant assign a value to this object).

my specfic example is..i have a form...and w/in the form i have a subform which has three text fields...category id, category description, and category name...category ID is autonumber...

now when i try to fill in something under category name or description the error pops up (You cant assign a value to this object).

can someone please help me solve this.
ur help is very much appreciated!

thanking you in anticipation.

"You cant assign a value to this object"

I keep getting this error when trying to add a record in my subform.

I beleive it's due to the relationships.

It's one to many and it needs to be one to many but the otherway around. Meaning the one that's right now set up as one need to be many and vise versa.

So, how can i change the relationship?
It's reversed.


I think that's the solution...but i may be wrong.

Any help would be greatly appreciated.


I've made subform before and it has been working perfectly. Now I'm trying to duplicate what I did and every sigle time I tried to create a subform I get this error mesg:

!Microsoft Access
You can't assign a value to this object.
* The objct may be a control on a read-only form.
* The object may be on a form that is open in Design view.
* The value may be too large for this field.


I know for a fact that it's not item two (form may be open in design view) and the last item (value may be too large....) and I have double check and recheck the first item, and the form is not on read only.

I've tried uninstalling Office 2000 reinstalling it and w/ SR 1 too. Same thing. This is driving me crazy!!!

Any help is greatly greatly appreciated!!!


I get "2448 - You cannot assign a value to this object" When users try to increment the value via a "+" button I have made(see attached image). The strange part is that it's not all the time. Very random actually. So that is why i am reaching for help. Below is the code for the button.
The application is run using Access runtime 2010 SP1 in a .accdb format. I edit the application via access 2007.

Private Sub cmdSomeButtonClick_Click()
On Error GoTo err

Dim qty%

If IsNull([ReadonlyFieldInTheAttachedImage]) Then [ReadonlyFieldInTheAttachedImage] = 0

qty% = Val([ReadonlyFieldInTheAttachedImage])

qty% = qty% + 1

[ReadonlyFieldInTheAttachedImage] = qty%

Exit Sub

MsgBox err.Number & err.Description
Exit Sub

Ok, so after looking at this. The text boxes control source is a number in the table. The code Val() is trying to convert a string to a number? Is this necessary if the control source is already a number? or is this necessary if the text box control is used?

as always your help is appreciated. Attached Thumbnails † Reply With Quote 07-12-2011,†07:44 AM #2 nkuebelbeck Advanced Beginner Windows 7 Access 2007 Join Date Mar 2010 Posts 81 Over complicated Couldn't I just go

[GreyedOutBox] = [GreyedOutBox] + 1


Not finding an answer? Try a Google search.