sql - Access forms - edit record from query with join on linked table -


my setup using access 2000 linked tables sql 2008 server.

i have created form displays data single linked table joins 1 field view in database (see sql below). relationship between table , view 1:1, why should not cause problem. however, experience cannot update records in recordset via form. error message "recordset cannot updated" when attempting write in 1 of fields.

according http://rogersaccessblog.blogspot.dk/2009/11/this-recordset-is-not-updateable-why.html there lot of problems regarding this, fulfill rules not having recordset not being updateable.

i have seen work same setup, puzzled why locks recordset now.

this sql query:

    select dbo_balance.*,  [dbo_amount_summary_all_specifications].[sum_amount] specification     dbo_amount_summary_all_specifications  right join dbo_balance on  ([dbo_amount_summary_all_specifications].[version]=[dbo_balance].[version]) , ([dbo_amount_summary_all_specifications].[year]=[dbo_balance].[year]) , ([dbo_amount_summary_all_specifications].[period]=[dbo_balance].[period]) , ([dbo_amount_summary_all_specifications].[kardex]=[dbo_balance].[kardex]) , ([dbo_amount_summary_all_specifications].[account]=[dbo_balance].[account])  [dbo_balance].[balance]<>0; 

thank in advance!

update 2014-03-12

my source data in sql database:

create view [dbo].[vw_overview_balance] select top (100) percent dbo.balance.id, dbo.balance.year, dbo.balance.period, dbo.balance.version, dbo.balance.kardex, dbo.balance.account, dbo.balance.kardex_name, dbo.balance.kardex_code, dbo.balance.kardex_hierarki, dbo.balance.coop_franchise, dbo.balance.chain, dbo.balance.chain_name, dbo.balance.responsible,  dbo.balance.balance, dbo.balance.comment, dbo.balance.bank_account,  dbo.balance.approver, dbo.balance.timestamp, dbo.vw_specifications_bank.sum_amount_bank, dbo.vw_specifications_system.sum_amount_system,dbo.vw_specifications_erp.sum_amount_erp,  dbo.vw_specifications_user.sum_amount_user, dbo.sum_total_balance.tot_balance, -  isnull(dbo.balance.bank_account, 0) - isnull(dbo.vw_specifications_erp.sum_amount_erp, 0)  + isnull(dbo.vw_specifications_bank.sum_amount_bank, 0) -  isnull(dbo.vw_specifications_system.sum_amount_system, 0) -  isnull(dbo.vw_specifications_user.sum_amount_user, 0) specification,  dbo.sum_total_balance.tot_balance - isnull(dbo.balance.bank_account, 0) -  isnull(dbo.vw_specifications_erp.sum_amount_erp, 0)  + isnull(dbo.vw_specifications_bank.sum_amount_bank, 0) - isnull(dbo.vw_specifications_system.sum_amount_system, 0)  - isnull(dbo.vw_specifications_user.sum_amount_user, 0) difference, dbo.account.account_name  dbo.balance left outer join dbo.account on  dbo.balance.account = dbo.account.account_no left outer join dbo.sum_total_balance  on dbo.balance.id = dbo.sum_total_balance.id left outer join dbo.vw_specifications_bank  on dbo.vw_specifications_bank.balance_id = dbo.balance.id left outer join dbo.vw_specifications_erp  on dbo.vw_specifications_erp.balance_id = dbo.balance.id left outer join dbo.vw_specifications_system  on dbo.vw_specifications_system.balance_id = dbo.balance.id left outer join dbo.vw_specifications_user on dbo.vw_specifications_user.balance_id = dbo.balance.id      (dbo.balance.kardex_code <> 3)  , (dbo.balance.kardex_code <> 13)  , (dbo.sum_total_balance.tot_balance <> 0)  , (dbo.balance.account in (select account_no dbo.account account_1)) 

the query in access database has been reduced to:

select dbo_vw_overview_balance.kardex, dbo_vw_overview_balance.account, dbo_vw_overview_balance.kardex_name, dbo_vw_overview_balance.kardex_hierarki, dbo_vw_overview_balance.coop_franchise, dbo_vw_overview_balance.chain_name, dbo_vw_overview_balance.responsible, dbo_vw_overview_balance.comment, dbo_vw_overview_balance.approver, dbo_vw_overview_balance.tot_balance, dbo_vw_overview_balance.specification, dbo_vw_overview_balance.difference, dbo_vw_overview_balance.year, dbo_vw_overview_balance.period, dbo_vw_overview_balance.version, dbo_vw_overview_balance.account_name  dbo_vw_overview_balance  order dbo_vw_overview_balance.kardex, dbo_vw_overview_balance.account; 

with support.microsoft.com/kb/304179 figured solution: though had primary keys on sql database, had not configured in linked table in access well. updating linked table , manually assigning primary key, can update recordset through both query , form!


Comments

Popular posts from this blog

c# - How to get the current UAC mode -

postgresql - Lazarus + Postgres: incomplete startup packet -