Умерено: изисква основни макро, кодиране и оперативна съвместимост умения.Тази статия се отнася за база данни на Microsoft Access (. mdb) и проект на Microsoft Access (. ADP).

Симптоми

Когато редактирате данни, който използва няколко формуляра, които имат един и същ източник на запис, можете да получите следното съобщение за грешка:

Този запис е променен от друг потребител, откакто сте започнали да го редактирате. Ако запишете записа, ще замените промените, направени от другия потребител. Копирането на промените в клипборда ще ви позволи да погледнете стойностите, въведени от другия потребител, и след това да поставите промените отново, ако решите да направите промени.

След това можете да щракнете върху един от следните три бутона:

  • Записване на запис

  • Копирай в клипборда

  • Пускане на промени

Причина

Това поведение възниква, когато отваряте две форми, които актуализират същия източник на данни в същото време. Първият формуляр поставя заключване за редактиране на записа или записите, след което вторият формуляр променя записа или записите и записва промените. Когато първият формуляр се опитва да затвори и да запишете обратно в таблицата, промените, направени от втория формуляр са открити. Това води до грешка да се върне.

Решение

За да заобиколите този проблем, използвайте някой от двата метода, изброени за файл на базата данни на Microsoft Access (. mdb) или метод, посочен за файл на проект на Access (. ADP).

За файл с база данни на Microsoft Access (. mdb)

Метод 1

Задайте свойството запис заключване на формуляра за редактиране на записа. За да направите това, изпълнете следните стъпки:

  1. Отворете формуляра в изглед за проектиране. Забележка: В Access 2007 преминете към стъпка 3.

  2. В менюто изглед щракнете върху свойства.

  3. В раздела " данни " променете свойството " заключване на запис " на редактирания запис.

Метод 2

Добавете код OnDeactivate на процедурата за събитие на двата формуляра, за да запишете записа. За да направите това, изпълнете следните стъпки:

  1. Отворете формуляра в изглед за проектиране. Забележка: В Access 2007 преминете към стъпка 4.

  2. В менюто изглед щракнете върху свойства.

  3. В менюто Редактиране щракнете върху избор на формуляр.

  4. В раздела събитие щракнете с десния бутон в полето ondeactivate свойството и след това щракнете върху компилация.

  5. В полето избор на конструктор щракнете върху съставител на коди след това щракнете върху OK.

  6. Въведете или поставете следния код:

    DoCmd.RunCommand acCmdSaveRecord
  7. Отворете втория формуляр в изглед за проектиране и повторете стъпки от 2 до 6.

За файл на проект на Microsoft Access (. ADP):

Добавяне на код на OnDeactivate и Ondeactivate на процедури за събитие на двете формуляри, за да запишете записа. За да направите това, изпълнете следните стъпки:

  1. Отворете формуляра в изглед за проектиране. Забележка: В Access 2007 преминете към стъпка 4.

  2. В менюто изглед щракнете върху свойства.

  3. В менюто Редактиране щракнете върху избор на формуляр.

  4. В раздела събитие щракнете с десния бутон в полето ondeactivate свойството и след това щракнете върху компилация.

  5. В полето избор на конструктор щракнете върху съставител на коди след това щракнете върху OK.

  6. Въведете или поставете следния код:

    DoCmd.RunCommand acCmdSaveRecord
  7. В менюто файл щракнете върху Затвори и връщане към Microsoft Access.

  8. В раздела събитие щракнете с десния бутон в полето onactivate свойството и щракнете върху компилация.

  9. В полето избор на конструктор щракнете върху съставител на коди след това щракнете върху OK.

  10. Въведете или поставете следния код:Забележка примерен код в тази статия използва Microsoft ActiveX данни обекти. За да се изпълни правилно този код, трябва да препратка Microsoft ActiveX данни обекти 2. x библиотека (където 2. x е 2,1 или по-късно). За да направите това, щракнете върху препратки в менюто инструменти в редактора на Visual Basic и се уверете, че е отметнато квадратчето Microsoft ActiveX данни обекти 2. x библиотека .

    Dim rs As ADODB.RecordsetSet rs = Me.Recordset.Cloners.Bookmark = Me.BookmarkDoCmd.RunCommand acCmdRefreshMe.Bookmark = rs.Bookmarkrs.CloseSet rs = Nothing
  11. Отворете втория формуляр в изглед за проектиране и след това повторете стъпки от 2 до 10.

Повече информация

Стъпки за възпроизвеждане на поведението в Access 2003

  1. Отворен достъп.

  2. В менюто помощ посочете примерни бази даннии изберете Northwind примерен база данни.

  3. В прозореца на базата данни щракнете върху таблици под обектии след това щракнете върху таблицата служители .

  4. В менюто Вмъкване щракнете върху Автоформуляр.

  5. Запишете формуляра като Frmnewemployees.

  6. Отворете формуляра служители и променете полето първо име на Nancy1.

  7. Отворете формуляра frmNewEmployees и променете полето първо име на Nancy2.

  8. Затворете формуляра frmNewEmployees.

  9. Затворете формуляра за служители. Обърнете внимание, че получавате съобщението "конфликт при запис", споменато в раздела "симптоми" на тази статия.

За допълнителна информация щракнете върху следните номера на статии в базата знания на Microsoft:

304181 неочаквано запис конфликт грешка при затваряне на формуляр

280730 ACC2000: запис конфликт грешка при опит за актуализиране на записи в ТАБЛИЦАТА свързани SQL Server

Нуждаете се от още помощ?

Разширете уменията си
Преглед на обучението
Получавайте първи новите функции
Присъединете се към Microsoft приобщени

Беше ли полезна тази информация?

Доколко сте доволни от качеството на езика?
Какво е повлияло на вашия потребителски опит?

Благодарим ви за обратната връзка!

×