НАЗАД END - SQL ServerНевозможно создать новую запись через форму ACCESS
FRONT END - Access 2010 (формат 2000)
система хранит и извлекает данные о технических документов. В целом, есть три таблицы A, B и C, каждая из которых поддерживает данные о документе другого типа.
Передняя часть ACCESS предоставляет форму поиска и форму ввода/редактирования данных (привязана к базовой таблице) для каждого типа документа. Во всех трех типах документов при добавлении новой записи пользователь откроет форму поиска и нажмите кнопку «Добавить». Это открывает/Редактировать форму ввода данных и в случае Form_Load является линия
DoCmd.GoToRecord , , acNewRec
Когда запись данных завершена, пользователь нажимает на кнопку «Закрыть», которая просто запускает код
DoCmd.Close
Как я уже сказал, дизайн и код объектов, относящихся к трем типам документов, идентичны для всех целей и целей. Однако, хотя для таблиц A и B процесс добавления новой записи является бесшовной и чрезвычайно быстрой, для таблицы C оказалось невозможным добавить новую запись через пользовательский интерфейс ACCESS. Форма редактирования откроется правильно, чтобы добавить данные, но когда пользователь нажимает кнопку «Закрыть», форма зависает и в конечном итоге возвращается в форму поиска без добавления новой записи.
Можно обойти пользовательский интерфейс, открыв ACCESS, удерживая клавишу SHIFT, открывая связанную таблицу и добавляя новые записи напрямую. Хотя это приемлемо как временная мера, в долгосрочной перспективе это неприемлемо. Следует отметить, что системе исполняется около десяти лет, и она работает совершенно правильно примерно в течение девяти лет (кроме незначительных сбоев, перемещающихся между различными версиями ACCESS).
К сожалению, эта система принадлежит и управляется крупной глобальной корпорацией, и для меня, субподрядного поставщика, очень сложно получить доступ к ящику SQL Server для запуска диагностики (SQL Profiler будет хорошей отправной точкой). Я чувствую, что есть тонкая разница в модели разрешений для этой конкретной таблицы, но я не знаю.
Ситуация осложняется еще тем, что у меня есть копия системы в моей работе, и я не могу воспроизвести проблему. Разумеется, между этими двумя архитектурами должны быть тонкие различия (например, я не знаю наверняка, в какой версии SQL Server он работает, но я считаю, что это 2000, и я не знаю, как полностью он исправлен или обновлено), но факты заключаются в том, что для одной конкретной таблицы, связанной с одной конкретной формой, невозможно добавить записи, тогда как для других таблиц такой проблемы нет.
Я был бы признателен, если у кого-нибудь возникнут какие-либо идеи о том, как начать диагностировать это или даже решить его (если кто-то сталкивался с той же проблемой раньше).
Большое спасибо
Эдвард
Эдвард, почему так трудно получить доступ к SQL Server? Есть нет возможности использовать удаленный сеанс для доступа к серверу. Если они хотят, чтобы вы решили проблему, им нужно как-то помочь вам? – Jaques
Hi Jaques - есть соображения безопасности, связанные с MOD и Министерством обороны США, которые ограничить доступ (я просил удаленного доступа много раз, но нет никаких шансов), не говоря уже о самом обструктивном и сложном DBA, с которым я когда-либо сталкивался! – Edwardo
Не могли бы вы сделать форму несвязанной, а затем добавить запись через Операция «INSERT» в коде, вызванная кнопкой «Закрыть»? (Не принимать во внимание мой «ответ», это означалось как комментарий!) –