Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / О формах ввода / 16 сообщений из 16, страница 1 из 1
11.04.2003, 12:51
    #32138508
pv
pv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О формах ввода
(Проект ADP, к серверу MSSQL.)
Есть ленточная форма связанная с таблицей, при вводе данных в форму и переходе на новую строку Аксес выдает сообщение:
"невозможно обновить запись, поскольку она удалена другим пользователем, либо в ней изменено значение ключа"
После чего вместо новых данных ячейки либо обнуляются, в случае если форма указана для ввода данных, либо в ячейках пишет "#ошибка".
Что это может быть и как от этого избавиться???
...
Рейтинг: 0 / 0
11.04.2003, 12:55
    #32138517
Хам трамвайный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О формах ввода
читаем справку:

Свойство «Команда синхронизации» (ResyncCommand)
Свойство Команда синхронизации (ResyncCommand) определяет инструкцию SQL или сохраненную процедуру, которая используется в обновляемом статическом наборе записей таблицы. String, чтение/запись.

выражение.ResyncCommand

выражение Обязательно. Выражение, возвращающее один из объектов в списке «Применение».

Заметки
Свойство Команда синхронизации (ResyncCommand) является строковым выражением, представляющим инструкцию SQL или сохраненную процедуру, параметры которой задаются ключевыми столбцами уникальной таблицы в выводящемся наборе записей. В качестве маркера параметров используется вопросительный знак (?).

Значение данного свойства задается в окне свойств или в программе Microsoft Visual Basic.

Параметры должны соответствовать как по количеству, так и по порядку набору ключевых столбцов таблицы, определяемой свойством Однозначная таблица (UniqueTable). Свойство Команда синхронизации (ResyncCommand) предназначено для выбора «фиксированных» значений строки в наборе записей после обновления, в том числе обновления в столбцах объединения.

Если значение свойства Команда синхронизации (ResyncCommand) является пустым, то Microsoft Access определяет для страниц доступа к данным и для форм, основанных на представлениях или на запросах SQL без параметров, содержащих объединение, операцию ресинхронизации с помощью соответствующего запроса. Для страниц доступа к данным и форм, основанных на сохраненных процедурах или на инструкциях SQL с параметрами, Microsoft Access во время выполнения не может определить соответствующий запрос на синхронизацию. Поэтому пользователь должен определить свойство Команда синхронизации (ResyncCommand), чтобы обеспечить правильные характеристики обновления строк. Если свойство Команда синхронизации (ResyncCommand) не задано и Microsoft Access не может определить соответствующий запрос, то после обновления или вставки выполняется стандартная операция синхронизации ADO (вывод текущих значений).
...
Рейтинг: 0 / 0
11.04.2003, 13:05
    #32138531
pv
pv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О формах ввода
ну а поконкретней, пожалуйста, а то как то расплывчато.
...
Рейтинг: 0 / 0
11.04.2003, 13:11
    #32138552
V. Motchulsky
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О формах ввода
Надо править тригер.
...
Рейтинг: 0 / 0
11.04.2003, 13:11
    #32138554
pv
pv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О формах ввода
Да, и запрос для отображения таблицы - выборка всех записей, а вот добавляя строку, единственное что я использую - тригер на вставку, чтобы данные еще вставлялись в другую таблицу.
...
Рейтинг: 0 / 0
11.04.2003, 13:21
    #32138584
pv
pv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О формах ввода
И что самое интересное, есть ли тригер или его нет ошибку выдает одну и ту же.
...
Рейтинг: 0 / 0
11.04.2003, 13:23
    #32138589
V. Motchulsky
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О формах ввода
Добавте в тригер
Код: plaintext
1.
2.
3.
4.
5.
6.
Declare @Idt Int, @s VarChar( 50 )
Set @Idt = @@Identity
 /* Ваш код
INSERT .....
*/ 
Set @s = 'Select Identity(Int, ' + Cast(@Idt As VarChar( 10 )) +' ,1) As idt Into #Tmp'
Execute(@s)
...
Рейтинг: 0 / 0
11.04.2003, 13:27
    #32138597
pv
pv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О формах ввода
Попробовал добавить в тригер, но ничего не дало.
...
Рейтинг: 0 / 0
11.04.2003, 13:32
    #32138606
pv
pv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О формах ввода
глюк в sql server пропал, а вот аксес все равно ругается на вставку новых данных.
...
Рейтинг: 0 / 0
11.04.2003, 13:51
    #32138652
pv
pv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О формах ввода
Может есть еще идеи, а то вся работа застопорилась????
...
Рейтинг: 0 / 0
11.04.2003, 13:54
    #32138657
V. Motchulsky
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О формах ввода
TimeStamp случайно не используете?
...
Рейтинг: 0 / 0
11.04.2003, 14:00
    #32138668
pv
pv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О формах ввода
Нет, не использую.
Самое интересное, создаю новую форму и эта проблема не наблюдается, возможно это происходит по тому, что тригер был написан после создания формы, и она не обновилась, но заново ее переписывать не охота, может возможно что-нить в свойствах поменять????
...
Рейтинг: 0 / 0
11.04.2003, 14:22
    #32138727
V. Motchulsky
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О формах ввода
Иногда бывают глюки, можно сохранить формы как текст, а потом обратно считать

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Dim obj
For Each obj In Application.CurrentProject.AllForms
   SaveAsText acForm, obj.Name,  "d:/OBJ/"  & obj.Name &  ".frm" 
Next

Public Function LoadObjs()
Dim fs, f, S
Dim Obj
Set fs = CreateObject( "Scripting.FileSystemObject" )
Set f = fs.GetFolder( "d:\OBJ\" )
For Each Obj In f.files
    S = Obj.Name
    Select Case Right(Obj.Name,  3 )
    Case  "FRM" 
        Application.LoadFromText acForm, Left(S, Len(S) -  4 ),  "d:\OBJ\"  + S
    End Select
Next Obj
End Function
...
Рейтинг: 0 / 0
11.04.2003, 18:19
    #32139143
pv
pv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О формах ввода
Не работает. Неужели единственный выход создавать эти формы с начала???
...
Рейтинг: 0 / 0
11.04.2003, 18:25
    #32139155
V. Motchulsky
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О формах ввода
Описанное выше позволяет создать форму заново с теми же свойствами, что и были. Следовательно проблема не в том, когда создана форма, а какие у нее свойства. Совет: сравнить свойства с новой формой и найти причину
...
Рейтинг: 0 / 0
12.04.2003, 07:14
    #32139292
pv
pv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О формах ввода
Оказывается все дело в представлении, для более элегантного ввода использовалось представление, чтобы пользователь вводи не идентификатор продукта, а мог вводить "тип продукции, производителя, модель" по раздельности, соответственно это я пытался сделать через представление, на что и ругался Аксес, но вот мне может кто-нить подскажет как это сделать???
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / О формах ввода / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]