Solved

Recordset not updateable ......

Posted on 2011-09-22
7
246 Views
Last Modified: 2012-05-12
See attached.
Click frmDatasheet
Double on one of the circular option buttons on the left.  This chooses a customer.

I have put a STOP in the code to assist.
Now F8 through the code.
It will crash with a recordset error on the line "DateViewed = Now()"

WHY ? This worked earlier in the day.
KeyService2.accdb
0
Comment
Question by:Patrick O'Dea
  • 4
  • 3
7 Comments
 
LVL 61

Expert Comment

by:mbizup
Comment Utility
Not sure if this is your issue, but the file you uploaded appears to be corrupt.
0
 

Author Comment

by:Patrick O'Dea
Comment Utility
Hi again,
Hopefully this is not corrupt.
I have simplified things.
Click on frmCUstomers
F8 until you get a recordset error (only a few F8)

Why this error?

frmCustomers maintains the tblCustomers - fairly straight forward stuff
KeyService2.accdb
0
 
LVL 61

Expert Comment

by:mbizup
Comment Utility
Can't open that one either - unrecognized database format, and the upload is zero bytes.
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
LVL 61

Expert Comment

by:mbizup
Comment Utility
Okay - I got a little further with your first uploaded DB by switching to an Access 2010 computer.

I now get to a password prompt.
0
 

Author Comment

by:Patrick O'Dea
Comment Utility
Yes , I see the zero sized one.
I have uploaded again and this is 3MB (I can see it in EE screen!)

Password is 1234
KeyService2.accdb
0
 
LVL 61

Accepted Solution

by:
mbizup earned 500 total points
Comment Utility
Your recordsource query for frmCustomers looks odd  - I'm not sure if this is deliberate or not, but it is the culprit:

SELECT tblCustomers.CustomerID, tblCustomers.CustomerName, tblCustomers.CustomerPhone, tblCustomers.CompanyName, tblCustomers.Add1, tblCustomers.Add2, tblCustomers.Add3, tblCustomers.PostCode, tblCustomers.DateReported, tblCustomers.ExpectedCompletion, tblCustomers.RevisedCompletion, tblCustomers.GeneralComments, tblCustomers.WindowCount, tblCustomers.FaultyWindowCount, tblCustomers.InstallationDate, tblCustomers.ReportedBy, tblCustomers.Status, tblCustomers.CallBackDate, tblCustomers.DateCompleted, tblCustomers.SiteVisitRequired, tblCustomers.CompletionCertNumber, tblCustomers.EngineerorSubcontractor, tblCustomers.Locked, tblCustomers.DateLocked, tblStatus.AllowLock, tblCustomers.Merchant, tblCustomers.Locker, tblCustomers.DateViewed, tblCustomers.email, tblCustomers.PaymentMethod, tblCustomers.CreditCardNumber, tblCustomers.[3Digit], tblCustomers.NameOnCard, tblCustomers.ExpiryDate, tblCustomers.CalloutCharge, tblCustomers.PaymentReceived, tblCustomers_1.ChargeableToCustomer
FROM tblCustomers AS tblCustomers_1, tblCustomers INNER JOIN tblStatus ON tblCustomers.Status = tblStatus.StatusID;

You have tblCustomers and an alias for tblCustomers (tblCustomers_1), with one field being selected from the alias (ChargeableToCustomer).

That doesn't *seem* necessary, and revising it like this makes it updateable:

SELECT tblCustomers.CustomerID, tblCustomers.CustomerName, tblCustomers.CustomerPhone, tblCustomers.CompanyName, tblCustomers.Add1, tblCustomers.Add2, tblCustomers.Add3, tblCustomers.PostCode, tblCustomers.DateReported, tblCustomers.ExpectedCompletion, tblCustomers.RevisedCompletion, tblCustomers.GeneralComments, tblCustomers.WindowCount, tblCustomers.FaultyWindowCount, tblCustomers.InstallationDate, tblCustomers.ReportedBy, tblCustomers.Status, tblCustomers.CallBackDate, tblCustomers.DateCompleted, tblCustomers.SiteVisitRequired, tblCustomers.CompletionCertNumber, tblCustomers.EngineerorSubcontractor, tblCustomers.Locked, tblCustomers.DateLocked, tblStatus.AllowLock, tblCustomers.Merchant, tblCustomers.Locker, tblCustomers.DateViewed, tblCustomers.email, tblCustomers.PaymentMethod, tblCustomers.CreditCardNumber, tblCustomers.[3Digit], tblCustomers.NameOnCard, tblCustomers.ExpiryDate, tblCustomers.CalloutCharge, tblCustomers.PaymentReceived, tblCustomers.ChargeableToCustomer
FROM tblCustomers INNER JOIN tblStatus ON tblCustomers.Status = tblStatus.StatusID;

That makes it 'work', and I don't think it changes your expected functionality.

0
 

Author Closing Comment

by:Patrick O'Dea
Comment Utility
Thanks , perfect solution.  I should have spotted it !
0

Featured Post

Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

Join & Write a Comment

In the previous article, Using a Critera Form to Filter Records (http://www.experts-exchange.com/A_6069.html), the form was basically a data container storing user input, which queries and other database objects could read. The form had to remain op…
Regardless of which version on MS Access you are using, one of the harder data-entry forms to create is one where most data from previous entries needs to be appended to new records, especially when there are numerous fields and records involved.  W…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
Using Microsoft Access, learn some simple rules for how to construct tables in a relational database. Split up all multi-value fields into single values: Split up fields that belong to other things into separate tables: Make sure that all record…

763 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now