Przejdź do głównej zawartości
Pomoc techniczna
Zaloguj się przy użyciu konta Microsoft
Zaloguj się lub utwórz konto.
Witaj,
Wybierz inne konto.
Masz wiele kont
Wybierz konto, za pomocą którego chcesz się zalogować.

Mogą wystąpić sytuacje, w których nie można edytować danych w widok arkusza danych zapytań w celu zmiany danych w tabeli źródłowej. Ten artykuł ułatwia zrozumienie, kiedy można edytować dane zapytania, kiedy nie można edytować danych zapytania i jak zmienić projekt zapytania, aby można było edytować jego dane źródłowe.

W tym artykule

Wprowadzenie

Po otwarciu zapytania w widoku arkusza danych może okazać się konieczne edytowanie danych. Być może zauważysz błąd lub widzisz pewne informacje, które są nieaktualne. W zależności od sposobu skonstruowania zapytania można edytować dane bezpośrednio w zapytaniu arkusz danych.

Jeśli próbujesz edytować dane w arkuszu danych zapytania, ale nic się nie dzieje lub system Windows odtwarza dźwięk, a edycja nie występuje, nie można wykonać edycji. Może się zdarzyć, że samo zapytanie nie będzie dostępne do edycji, na przykład zapytanie krzyżowe. Może się też zdarzyć, że tylko pole, które próbujesz edytować, nie jest dostępne do edycji — na przykład jeśli pole jest oparte na funkcji agreguującej, takiej jak średnia. W obu przypadkach można coś zrobić, aby włączyć edytowanie.

Oprócz edytowania danych w widoku arkusza danych zapytania można także aktualizować dane w tabeli za pomocą zapytanie aktualizujące. W tym artykule nie omówiono zapytań aktualizujących.

Aby uzyskać więcej informacji o zapytaniach aktualizujących, zobacz artykuł Tworzenie i uruchamianie zapytania aktualizującego.

Zazwyczaj, jeśli chcesz edytować dane w widoku arkusza danych zapytania, chcesz, aby zmiany były zapisywane w tabelach, na których jest oparte zapytanie. Jeśli nie chcesz zmieniać danych w tych tabelach, ale nadal chcesz edytować dane i zachować edytowane dane po zakończeniu, możesz użyć zapytanie tworzące tabele, aby najpierw utworzyć nową tabelę, której dane można edytować. Za pomocą zapytania typu tworzenie tabeli można również zapisać wyniki zapytania, które nie zezwala na edytowanie jako nowej tabeli, a następnie edytować dane w nowej tabeli. W tym artykule nie omówiono tworzenia i uruchamiania zapytań tworzących tabele.

Aby uzyskać więcej informacji na temat zapytań tworzących tabele, zobacz artykuł Tworzenie zapytania tworzącego tabelę.

Początek strony

Kiedy można edytować dane w zapytaniu?

Zawsze można edytować dane w zapytaniu, gdy zapytanie jest oparte tylko na jednej tabeli lub na dwóch tabelach, w których występuje relacja jeden-do-jednego.

Uwaga: Nawet jeśli można edytować dane w zapytaniu, niektóre z jego pól mogą nie być dostępne do edycji. Takie przypadki są wymienione w poniższej sekcji.

Początek strony

Kiedy nie mogę edytować danych w zapytaniu?

Nigdy nie można edytować danych w zapytaniu, gdy:

  • Zapytanie jest zapytanie krzyżowe.

  • Zapytanie jest zapytanie specyficzne dla języka SQL.

  • Pole, które próbujesz edytować, to pole obliczeniowe. W takim przypadku możesz edytować inne pola.

  • Zapytanie jest oparte na co najmniej trzech tabelach i istnieje relacja wiele-do-jednego-do-wielu.

    Uwaga: Chociaż w takim przypadku nie można edytować arkusza danych zapytania, można edytować dane w formularzu, gdy właściwość RecordsetType formularza jest ustawiona na wartość Dynaset (niespójne Aktualizacje).

  • Zapytanie zawiera klauzulę GROUP BY.

Początek strony

Jak mogę zmienić zapytanie, aby móc edytować jego dane?

W poniższej tabeli wymieniono przypadki, gdy nie można edytować zapytania w połączeniu z metodami umożliwiającymi udostępnienie arkusza danych zapytania do edycji.

Wartości w arkuszu danych zapytania nie można edytować, gdy:

Aby udostępnić arkusz danych zapytania do edycji:

Właściwość Wartości unikatowe zapytania jest ustawiona na wartość Tak.

Ustaw właściwość Wartości unikatowe zapytania na wartość Nie.

Aby dowiedzieć się, jak ustawić tę właściwość, zobacz sekcję Ustawianie właściwości Wartości unikatowe na Wartość nie.

Zapytanie zawiera połączoną tabelę baza danych ODBC bez indeks unikatowy lub tabeli Paradox bez klucz podstawowy.

Dodaj klucz podstawowy lub unikatowy indeks do tabeli połączonej przy użyciu metod dostarczonych przez dostawcę połączonej bazy danych.

Nie masz uprawnień Aktualizuj dane dla tabeli źródłowej.

Przypisz uprawnienia do aktualizacji danych.

Zapytanie zawiera więcej niż jedną tabelę lub jedno zapytanie, a tabele lub zapytania nie są połączone linią sprzężenia w widoku projektu.

Utwórz odpowiednie sprzężenia.

Zobacz sekcję Tworzenie sprzężeń, aby dowiedzieć się, jak tworzyć sprzężenia.

Baza danych jest otwarta jako tylko do odczytu lub znajduje się na dysku tylko do odczytu.

Zamknij bazę danych i otwórz ją ponownie bez wybierania pozycji Otwórz tylko do odczytu. lub, jeśli baza danych znajduje się na dysku tylko do odczytu, usuń atrybut tylko do odczytu z dysku lub przenieś bazę danych na dysk, który nie jest tylko do odczytu.

Pole w rekordzie, który próbujesz zaktualizować, zostanie usunięte lub zablokowane przez innego użytkownika.

Poczekaj na odblokowanie rekordu. Zablokowany rekord może zostać zaktualizowany zaraz po odblokowaniu rekordu. Poczekaj, aż inny użytkownik zakończy operację, która zablokowała rekord.

Zapytanie jest oparte na tabelach z relacja jeden-do-wielu, a pole sprzężenia po stronie "wiele" nie jest polem docelowym. W takim przypadku nie można edytować danych w polu sprzężenia po stronie "jeden".

Dodaj pole sprzężenia ze strony "wiele" relacji do pól wyjściowych zapytania.

Aby dowiedzieć się, jak dodać pole sprzężenia, zobacz sekcję Dodawanie pola sprzężenia od strony "wiele" do pól wyjściowych zapytania.

Pole sprzężenia po stronie "wiele" (po edytowaniu danych) znajduje się po stronie "jeden".

Naciśnij klawisze SHIFT+F9 , aby zatwierdzić zmiany i odświeżyć zapytanie.

Istnieje puste pole z tabeli po stronie "jeden" relacji jeden-do-wielu, a sprzężenie to prawe sprzężenie zewnętrzne.

Upewnij się, że pole po stronie "jeden" zawiera wartość. Pole sprzężenia można edytować po stronie "wiele" tylko wtedy, gdy w tym polu znajduje się wartość po stronie "jeden".

Używasz połączonej tabeli bazy danych ODBC i nie wszystkie pola z unikatowego indeksu tabeli połączonej znajdują się w wynikach zapytania.

Dodaj wszystkie pola z unikatowego indeksu tabeli ODBC do pól wyjściowych zapytania.

Zobacz sekcję Dodawanie unikatowych pól indeksu z połączonej tabeli ODBC, aby dowiedzieć się, jak dodać pola.

Początek strony

Ustaw właściwość Wartości unikatowe na wartość Nie

  1. Otwórz zapytanie w widoku projektu.

  2. Jeśli arkusz właściwości nie jest otwarty, otwórz go, naciskając klawisz F4. Kliknij raz w siatce projektu zapytania, aby upewnić się, że w arkuszu właściwości są wyświetlane właściwości zapytania, a nie właściwości pola.

  3. W arkuszu właściwości znajdź pole właściwości Wartości unikatowe . Kliknij pole obok niego, kliknij strzałkę w tym polu, a następnie kliknij pozycję Nie.

Tworzenie sprzężeń

  1. Otwórz zapytanie w widoku projektu.

  2. Dla każdej tabeli lub zapytania, które chcesz połączyć z inną tabelą, przeciągnij pole sprzężenia z tej tabeli lub zapytania do odpowiedniego pola w tabeli lub zapytaniu, na podstawie którego chcesz utworzyć sprzężenie.

Aby uzyskać więcej informacji na temat tworzenia sprzężeń, zobacz artykuł Łączenie tabel i zapytań.

Dodawanie pola sprzężenia od strony "wiele" do pól wyjściowych zapytania

  1. Otwórz zapytanie w widoku projektu.

  2. W projektancie zapytań znajdź sprzężenie odpowiadające odpowiedniej relacji jeden-do-wielu.

  3. Kliknij dwukrotnie pole sprzężenia po stronie "wiele" relacji jeden-do-wielu. Pole sprzężenia zostanie wyświetlone w siatce pola, co oznacza, że jest ono teraz polem docelowym.

Dodawanie unikatowych pól indeksu z połączonej tabeli ODBC

  1. Otwórz zapytanie w widoku projektu.

  2. W projektancie zapytań znajdź połączoną tabelę ODBC.

  3. Obok nazwy pola unikatowego indeksu będzie znajdować się symbol klucza. Kliknij dwukrotnie każde pole, które nie znajduje się jeszcze w siatce pól. Każde pole zostanie wyświetlone w siatce pola, co oznacza, że jest to pole wyjściowe.

Początek strony

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?
Jeśli naciśniesz pozycję „Wyślij”, Twoja opinia zostanie użyta do ulepszania produktów i usług firmy Microsoft. Twój administrator IT będzie mógł gromadzić te dane. Oświadczenie o ochronie prywatności.

Dziękujemy za opinię!

×