MSSql2008 view linked to Acess 2007 , This record has been changed by another user

JoeBlack1980
JoeBlack1980 used Ask the Experts™
on
Dear All,

I have a created a VIEW on MSSql2008.
It is linked to my Access 2007 project.
When i try to EDIT  ANY filed it says ,This record has been changed by another user.
Please note that it already happens when i open the view inside acces, it is linked as a table, and it is not inside a form .
When i use the same query (written is Access )it works perfectly good.
I am attaching the SQL view code.
 
ALSO A SMALL NOTE:
When i open the view in Sql Server Management studio ,and select EDIT top 200 rows,
and then when i do edit QuantityOfSale or another field, and then i go to another record it markes the edited record  with a red exclamation mark on the left .
It also says  ROW FAILED TO RETREIVE ON LAST OPERATION



Any ideas ?
SELECT     TOP (100) PERCENT dbo.ClientOrderFileProduct.ClientOrderFileProductId, dbo.ClientOrderFileProduct.ClientOrderFileId, dbo.ClientOrderFileProduct.TgcRefId, 
                      dbo.ClientOrderFileProduct.Description, dbo.ClientOrderFileProduct.QuantityOfSale, dbo.ClientOrderFileProduct.PriceOfSale, 
                      dbo.ClientOrderFileProduct.SupplierPriceId, dbo.ClientOrderFileProduct.Note, dbo.ClientOrderFileProduct.ClientLineNo, dbo.ClientOrderFileProduct.TgcLineNo, 
                      dbo.ClientOrderFileProduct.HasOrderPageToSupplier, dbo.ClientOrderFileProduct.AdditionalOrderItem, dbo.ClientOrderFileProduct.MainOrderItem, 
                      dbo.ClientOrderFileProduct.MainClientOFProductsId, dbo.ClientOrderFileProduct.SpecialCustomerReference, dbo.ClientOrderFileProduct.SpecialCustomerDescription, 
                      dbo.ClientOrderFileProduct.SpeicalCustomerQuantity, dbo.ClientOrderFileProduct.SpecialCustomerPrice, dbo.ClientOrderFileProduct.SpecialTrInvoiceSupplier, 
                      dbo.ClientOrderFileProduct.SpecialTrInvoiceDescription, dbo.ClientOrderFileProduct.SpecialTrInvoiceQuantity, dbo.ClientOrderFileProduct.SpeicalTrInvoicePrice, 
                      dbo.ClientOrderFileProduct.OriginalReference, dbo.ClientOrderFileProduct.QuantityOfOrder, dbo.ClientOrderFileProduct.ItemReceived, 
                      dbo.ClientOrderFileProduct.NoteForClient, dbo.ClientOrderFileProduct.SupplierDeliveredItem, dbo.ClientOrderFileProduct.BackOrderItem, 
                      dbo.ClientOrderFileProduct.BackOrderItemCopiedToNextOrder, dbo.ClientOrderFileProduct.FromBackOrder, 
                      dbo.ClientOrderFileProduct.FromBackOrderWithSupplierOrderPageId, dbo.ClientOrderFileProduct.FromBackOrderWithClientOrderFileProductId, 
                      dbo.ClientOrderFileProduct.SupplierOrderPageId, dbo.ClientOrderFileProduct.CancelledBy, dbo.ClientOrderFileProduct.CancellationReason, 
                      dbo.ClientOrderFileProduct.TurkishInvoiceLine, dbo.ClientOrderFileProduct.DescriptionCarModel, dbo.ClientOrderFileProduct.DescriptionExtraDetails, 
                      dbo.ClientOrderFileProduct.SpecialTrInvoiceReference, dbo.ClientOrderFileProduct.LogoInvoiceLineId, dbo.ClientOrderFileProduct.LogoInvoiceLineQuantityAssigned, 
                      dbo.ClientOrderFile.Currency, dbo.SupplierPrice.SupplierReference, dbo.SupplierPrice.SupplierDescription, dbo.SupplierPrice.SupplierPrice, 
                      dbo.SupplierPrice.SupplierDiscount, dbo.SupplierPrice.SupplierCurrency, dbo.TgcRef.CommonRefId, dbo.SupplierOrderPage.Faxed, 
                      dbo.SupplierPrice.PriceIsNoMoreValid, dbo.Supplier.SupplierId, dbo.Client.ClientCompany, dbo.ClientOrderFile.ProformaOrInvoice, 
                      dbo.ClientOrderFileProduct.QuantityOfSale * dbo.ClientOrderFileProduct.PriceOfSale AS TotalOfSale, 
                      (CASE WHEN dbo.SupplierOrderPage.Faxed = 1 THEN '<fax>' + SupplierShortName ELSE SupplierShortName END) AS SupplierShortName, 
                      dbo.SupplierPrice.SupplierPrice * (1 - dbo.SupplierPrice.SupplierDiscount / 100) AS NetBuyPrice, 
                      dbo.SupplierPrice.SupplierPrice * (1 - dbo.SupplierPrice.SupplierDiscount / 100) * dbo.ClientOrderFileProduct.QuantityOfOrder AS TotalBuy
FROM         dbo.ClientOrderFileProduct INNER JOIN
                      dbo.ClientOrderFile ON dbo.ClientOrderFileProduct.ClientOrderFileId = dbo.ClientOrderFile.ClientOrderFileId INNER JOIN
                      dbo.Client ON dbo.ClientOrderFile.ClientId = dbo.Client.ClientId INNER JOIN
                      dbo.TgcRef ON dbo.ClientOrderFileProduct.TgcRefId = dbo.TgcRef.TgcRefId INNER JOIN
                      dbo.SupplierPrice ON dbo.ClientOrderFileProduct.SupplierPriceId = dbo.SupplierPrice.SupplierPriceId INNER JOIN
                      dbo.Supplier ON dbo.SupplierPrice.SupplierId = dbo.Supplier.SupplierId LEFT OUTER JOIN
                      dbo.SupplierOrderPage ON dbo.ClientOrderFileProduct.SupplierOrderPageId = dbo.SupplierOrderPage.SupplierOrderPageId

Open in new window

Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®

Commented:
Views with outer joins are not editable.

Author

Commented:
Are you sure? Because when i click execute it saves the changes
Quite interstingly adding a TIMESTAMP filed to the main table solved the problem.
 

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial