Nie można użyć kwerendy w projekcie programu Access w programie Access 2002 dołączające rozbudowane

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 294923 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Zaawansowane: Wymaga kodowania ekspertów, interoperacyjności i umiejętności wielu użytkowników.

W tym artykule dotyczą tylko projektu programu Microsoft Access (.adp).

Wersja dla programu Microsoft Access 2000 niniejszego artykułu, 229681.
Rozwiń wszystko | Zwiń wszystko

Na tej stronie

Symptomy

Podczas próby uruchomienia rozbudowana dołączyć kwerendy w projekcie programu Microsoft Access, może zostać wyświetlony następujący komunikat o błędzie:
Nie można wstawić jawną wartość kolumny tożsamości w tabeli "Nazwa tabeli"gdy IDENTITY_INSERT jest ustawiony na wyłączone.

Przyczyna

Podczas tworzenia nowej bazy danych programu SQL Server (w tym programu SQL Server 2000 Desktop Engine) IDENTITY_INSERT opcje są ustawione na WYŁĄCZANIE.

Jeżeli można rozbudować tabelę programu Microsoft Access, która zawiera pole danych Autonumerowanie, pole to jest tworzone w programie SQL Server jako kolumna TOŻSAMOOCI. W odróżnieniu od typu danych Autonumerowanie nie można bezpośrednio edytować kolumny tożsamości, ani jawnie Wstawianie danych do kolumny tożsamości podczas IDENTITY_INSERT Opcja dla tej tabeli jest ustawiona na WYŁĄCZANIE. Aby wstawić lub zaktualizować dane w kolumnie tożsamości, należy ustawić IDENTITY_INSERT Opcja NA.

Rozwiązanie

Można użyć instrukcji IDENTITY_INSERT ustaw ustawić IDENTITY_INSERT Opcja. Ustaw IDENTITY_INSERT zawsze odwołuje się do tabeli, a należy umieścić przed instrukcji INSERT lub UPDATE, która modyfikuje lub wstawia dane do kolumny TOŻSAMOOCI. Poniższy przykład ustawia IDENTITY_INSERT w tabeli NewEmployees.
   SET IDENTITY_INSERT NewEmployees ON
				

Więcej informacji

Kroki do odtworzenia problemu

  1. Otwórz przykładową bazę danych Northwind.mdb.
  2. W oknie Baza danych kliknij tabelę Pracownicy, a następnie kliknij przycisk Kopiuj na Edycja menu.
  3. Na Edycja menu, kliknij przycisk Wklej. W Wklejanie tabeli jako okno dialogowe, typ NewEmployees w Nazwa tabeli pole. Kliknij przycisk OK.
  4. Utwórz nową kwerendę w widoku Projekt, a następnie zamknij Pokaż tabelę okno dialogowe bez dodawania żadnych tabel lub kwerend.
  5. Na Widok menu, kliknij przycisk Widok SQL.
  6. Wpisz następującą instrukcję INSERT INTO w oknie SQL. Ta instrukcja spowoduje utworzenie kwerendy dołączającej:
       INSERT INTO 
              NewEmployees (EmployeeID, LastName, FirstName, Title,
              TitleOfCourtesy, BirthDate, HireDate, Address, City, Region,
              PostalCode, Country, HomePhone, Extension, Photo, Notes,
              ReportsTo)
       SELECT 
              Employees.EmployeeID, Employees.LastName, Employees.FirstName,
              Employees.Title, Employees.TitleOfCourtesy, Employees.BirthDate,
              Employees.HireDate, Employees.Address, Employees.City,
              Employees.Region, Employees.PostalCode, Employees.Country,
              Employees.HomePhone, Employees.Extension, Employees.Photo,
              Employees.Notes, Employees.ReportsTo
       FROM 
              Employees;
    					
  7. Zapisz kwerendę jako qryAppend, a następnie Zamknij kwerendę.
  8. Na Narzędzia menu, wskaż Narzędzia bazy danych, a następnie kliknij przycisk Kreator rozbudowy.
  9. Wykonaj kroki Kreatora rozbudowy i zaakceptować wybór domyślny, z wyjątkiem opisanych poniżej:
    Utwórz nową bazę danych: Tak
    Które tabele chcesz wyeksportować do programu SQL Server: Eksportowanie wszystkich tabel
    Dodać pola sygnatury czasowej do tabel: Nie, nigdy
    Utwórz nową aplikację klient/serwer programu Access: Tak
  10. Po zakończeniu pracy Kreatora rozbudowy, zamknij raport rozbudowy.
  11. Spróbuj uruchomić procedurę qryAppend, przechowywane i zanotuj komunikat o błędzie.
  12. Aby WSTAWIĆ tożsamości NA, należy dodać następujący wiersz SQL do procedury przechowywane qryAppend bezpośrednio po słowo kluczowe JAK:
       SET IDENTITY_INSERT NewEmployees ON
    						
    Po zakończeniu procedury przechowywanej powinien być podobny do następującego tekstu:
       ALTER PROCEDURE qryAppend
       AS
       SET IDENTITY_INSERT NewEmployees ON
       INSERT INTO 
              NewEmployees (EmployeeID, LastName, FirstName, Title,
              TitleOfCourtesy, BirthDate, HireDate, Address, City, Region,
              PostalCode, Country, HomePhone, Extension, Photo, Notes,
              ReportsTo)
       SELECT 
              Employees.EmployeeID, Employees.LastName, Employees.FirstName,
              Employees.Title, Employees.TitleOfCourtesy, Employees.BirthDate,
              Employees.HireDate, Employees.Address, Employees.City, 
              Employees.Region, Employees.PostalCode, Employees.Country, 
              Employees.HomePhone, Employees.Extension, Employees.Photo, 
              Employees.Notes, Employees.ReportsTo
       FROM 
              Employees
    					
  13. Zapisz zmodyfikowany procedury przechowywanej, a następnie uruchom go. Należy zauważyć, że skutku.

Materiały referencyjne

Aby uzyskać więcej informacji na temat WSTAW TOŻSAMOŚĆ, zajrzyj do dokumentacji SQL Server Books Online. Aby pobrać program SQL Server Books Online, odwiedź następującą witrynę firmy Microsoft w sieci Web:
http://technet.microsoft.com/en-us/SQLServer/bb331756.aspx

Właściwości

Numer ID artykułu: 294923 - Ostatnia weryfikacja: 23 czerwca 2011 - Weryfikacja: 2.0
Informacje zawarte w tym artykule dotyczą:
  • Microsoft Access 2002 Standard Edition
Słowa kluczowe: 
kbclientserver kberrmsg kbprb kbmt KB294923 KbMtpl
Przetłumaczone maszynowo
WAŻNE: Ten artykuł nie został przetłumaczony przez człowieka, tylko przez oprogramowanie do tłumaczenia maszynowego firmy Microsoft. Firma Microsoft oferuje zarówno artykuły tłumaczone przez ludzi, jak i artykuły tłumaczone maszynowo, dzięki czemu każdy użytkownik może uzyskać dostęp do całej zawartości bazy wiedzy Knowledge Base we własnym języku. Prosimy jednak pamiętać, że artykuły przetłumaczone maszynowo nie zawsze są doskonałe. Mogą zawierać błędy słownictwa, składni i gramatyki, przypominające błędy robione przez osoby, dla których język użytkownika nie jest językiem ojczystym. Firma Microsoft nie odpowiada za wszelkie nieścisłości, błędy lub szkody spowodowane nieprawidłowym tłumaczeniem zawartości oraz za wykorzystanie tej zawartości przez klientów. Oprogramowanie do tłumaczenia maszynowego jest często aktualizowane przez firmę Microsoft.
Anglojęzyczna wersja tego artykułu to:294923

Przekaż opinię

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com