Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Ошибка: The data was added to the database but the data won’t be displayed in the form bec  [new]
omom
Member

Откуда:
Сообщений: 82
Многоуважаемый и всезнающий НАРОД!

Имеется база на MS SQL Server 2000, клиентская часть - "проект" на Access 2000. С сегодняшнего утра по невыясненным причинам при редактировании содержимого одной из таблиц стало появляться сообщение: "The data was added to the database but the data won’t be displayed in the form because it doesn’t satisfy the criteria in underlying record source."
Со стороны клиента редактирование осуществляется через форму, работающую только с одной записью, возвращаемой хранимой процедурой типа:

CREATE PROCEDURE dbo.spt_Material_by_ID
	(	@id_Mat	INT
	)
AS
SET NOCOUNT ON

--	Возвращает список из одной-единственной карточки материала
--	с сопутствующими данными

SELECT		MAT.id_Material
	,	MAT.txt_Name
	,	MAT.id_Marka
	,	MAT.id_Tolscina
	,	MAT.id_Folga
	,	MAT.txt_Remark
	,	MAT.numr_Margin_of_Safety
	,	MAT.dt_Last_Writing_Off
	,	MAT.dt_Date_of_Creating
	,	MAT.ok_for_Chemistry
	,	MAT.id_UoM
	,	MR.txt_Marka
	,	TT.txt_Tolscina
	,	FF.txt_Folga		 
	,	FF.int_Kolvo_storon

	,	dbo.udf_numr_Material_Used_by_StoreHouse 	( @id )	
	AS	numr_Used_by_StHs

	,	dbo.udf_numr_Material_Used_by_Acts 	( @id )
	AS	numr_Used_by_Acts	

FROM 		dbo.Material		AS	MAT
LEFT JOIN	dbo.Folga 		AS	FF
ON		MAT.id_Folga		= 	FF.id_Folga
LEFT JOIN	dbo.Marki_Materiala	AS	MR
ON		MAT.id_Marka		= 	MR.id_Marka
LEFT JOIN	dbo.TolscinaMateriala 	AS	TT
ON		MAT.id_Tolscina		= 	TT.id_Tolscina
WHERE		MAT.id_Material		= @id_Mat
GO


На таблицу Material навешен триггер, срабатывающий на любое редактирование таблицы и протоколирующий это редактирование в таблице истории изменений (дабы было потом с кого спросить за туфту в данных).

Сообщение появляется сразу же после попытки сохранить изменения данных. Данные сохраняются успешно, но форма становится пустой и "мертвой". Единственный способ вернуть ее к жизни - закрыть и открыть снова.

Проблема наблюдается только на карточках, для которых соблюдается

	MAT.id_Folga	= 0
OR	MAT.id_Marka	= 0
OR	MAT.id_Tolscina	= 0


Т.е. когда имеется ссылка на несуществующую карточку из зависимой таблицы. Пробовал использовать со стороны сервера ISNULL, чтобы исключить попадание значения NULL в поле формы. Не помогло, сбоит точно так же.

Кто-нибудь уже сталкивался с подобным сообщением? Как с этим бороться?

Конечно, можно решить проблему через subforms, но опят-таки - ПОЧЕМУ ТАК? Неужели нельзя решить проблему не извращаясь? Пните в нужном направлении, если вас не затруднит!

З.Ы. Совершенно аналогичная информация опубликована на форуме SQL server, но там никто и ничего мне не сказал...
15 ноя 04, 18:15    [1107173]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка: The data was added to the database but the data won’t be displayed in the form bec  [new]
omom
Member

Откуда:
Сообщений: 82
Как выяснилось, проблема и ее решение подробно описаны здесь:

http://support.microsoft.com/default.aspx?scid=kb;EN-US;248095

Моя отдельная благодарность адресована Alex Juice, который на соседнем форуме, посвященном SQL-server'у, любезно пнул меня в нужном направлении!

Всем удачи!
15 ноя 04, 19:08    [1107292]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить