Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Oryginalny numer KB: 328828
Uwaga / Notatka
Wymaga podstawowych umiejętności w zakresie makr, kodowania i współdziałania. Ten artykuł dotyczy bazy danych programu Microsoft Access (.mdb i .accdb) oraz projektu programu Microsoft Access (.adp).
W tym artykule opisano błędy, które mogą wystąpić w programie Microsoft Access podczas aktualizowania danych w zapytaniach i w formularzach. W tym artykule opisano również przyczyny błędów i sposób rozwiązywania problemów z tymi błędami.
Podczas próby zaktualizowania danych w zapytaniu lub formularzu może zostać wyświetlony jeden z następujących komunikatów o błędach:
Operacja musi używać kwerendy możliwej do zaktualizowania.
— lub —
Ten zestaw rekordów nie jest aktualizowalny.
Informacje dotyczące rozwiązywania problemów, które mogą wystąpić podczas aktualizowania danych w zapytaniu
Jeśli zapytanie jest oparte na co najmniej trzech tabelach i istnieje relacja wiele-do-wielu, nie można zaktualizować danych bezpośrednio w zapytaniu. Dane można zaktualizować w formularzu lub na stronie dostępu do danych. Można to zrobić na podstawie zapytania, gdy
RecordsetTypewłaściwość formularza jest ustawiona na Dynaset(Niespójne aktualizacje).Jeśli zapytanie jest zapytaniem krzyżowym, nie można zaktualizować danych w zapytaniu.
Jeśli zapytanie jest zapytaniem przekazywanym w usłudze Microsoft SQL, nie można zaktualizować danych w zapytaniu.
Gdy zapytanie oblicza sumę, średnią, liczbę lub inny typ sumy dla wartości w polu, nie można zaktualizować danych w zapytaniu. Ponadto nie można zaktualizować zapytania, które odwołuje się do pola w wierszu Update To pochodzącym z zapytania krzyżowego, zapytania, zapytania wybierającego lub podzapytania zawierającego sumy lub funkcje agregujące. Aby obejść ten problem, użyj funkcji Agregacja domeny w wierszu Update To zapytania aktualizacji. Możesz odwoływać się do pól z zapytania krzyżowego, zapytania wyboru lub podzapytania zawierającego sumy lub funkcje agregujące.
Jeśli zapytanie jest zapytaniem Unii, nie można zaktualizować danych w zapytaniu.
Gdy właściwość Unikatowe wartości zapytania ma wartość Tak, nie można zaktualizować danych w zapytaniu. Aby obejść ten problem, ustaw właściwość Unikatowe wartości zapytania na Nie.
Jeśli zapytanie zawiera połączoną tabelę ODBC bez unikatowego indeksu ani tabeli Paradox bez klucza podstawowego, nie można zaktualizować danych w zapytaniu. Aby obejść ten problem, dodaj klucz podstawowy lub unikatowy indeks do połączonej tabeli.
Jeśli nie masz uprawnień do aktualizacji danych dla zapytania lub tabeli bazowej, nie można zaktualizować danych. Aby rozwiązać ten problem, przypisz uprawnienia, aby zaktualizować dane.
Jeśli zapytanie zawiera więcej niż jedną tabelę lub jedno zapytanie, a tabele lub zapytania nie są przyłączone przez linię sprzężenia w widoku projektu , nie można zaktualizować danych w zapytaniu. Aby rozwiązać ten problem, należy poprawnie połączyć tabele, aby można je było zaktualizować.
Jeśli pole, które chcesz zaktualizować, jest polem obliczeniowym, nie można zaktualizować danych w zapytaniu.
Gdy pole, które próbujesz zaktualizować, jest tylko do odczytu, baza danych jest otwarta jako tylko do odczytu lub baza danych znajduje się na dysku tylko do odczytu, nie można zaktualizować danych w zapytaniu. Aby uniknąć tego problemu, nie należy otwierać bazy danych jako tylko do odczytu. Jeśli baza danych znajduje się na dysku, który jest tylko do odczytu, usuń atrybut tylko do odczytu z dysku lub przenieś bazę danych na dysk, który nie jest tylko do odczytu.
Jeśli pole w rekordzie, które próbujesz zaktualizować, zostanie usunięte lub zostanie zablokowane przez innego użytkownika, nie można zaktualizować danych w zapytaniu. Zablokowany rekord można zaktualizować natychmiast po odblokowaniu rekordu.
Gdy zapytanie jest oparte na tabelach z relacją jeden do wielu, typy pól, których nie można modyfikować, są następujące:
- Połącz pole ze strony "jeden".
- Pole połączenia typu "wiele" nie jest widoczne w arkuszu danych.
- Połącz pole ze strony "wiele" po zaktualizowaniu danych po stronie "jeden".
- W tabeli po stronie "jeden" relacji jeden do wielu z łączeniem zewnętrznym istnieje puste pole.
- Cały unikatowy klucz tabeli ODBC nie jest danymi wyjściowymi.
Jeśli wykonasz prawidłową akcję z poniższej listy, możesz rozwiązać dowolny z tych problemów:
- Włącz kaskadowe aktualizacje między dwiema tabelami.
- Dodaj pole łączenia ze strony "wiele" do zapytania, aby dodać nowe rekordy.
- Zapisz rekord. Możesz wprowadzić zmiany w polu sprzężenia po stronie "wiele".
- Wprowadź wartości w polach z tabeli po stronie "wiele". Można to zrobić tylko wtedy, gdy sprzężone pole ze strony "jeden" zawiera wartość dla tego rekordu.
- Zaznacz wszystkie pola klucza podstawowego tabel ODBC, aby umożliwić wstawianie do tych tabel.
Informacje o rozwiązywaniu problemów, które mogą wystąpić podczas aktualizowania danych w formularzu
Nie można zaktualizować danych w formularzu, jeśli formularz jest oparty na procedurze składowanej z więcej niż jedną tabelą.
Nie można zaktualizować danych w formularzu, jeśli formularz jest oparty na zestawie rekordów obiektów danych ActiveX (ADO). Formularze programu Access umożliwiają edytowanie danych z zestawu rekordów ADO, jeśli zestaw rekordów ADO jest tworzony przy użyciu kombinacji MSDataShape i dostawców OLEDB SQL Server.