Po kompresi databáze není vynulován pole Automatické číslo

Překlady článku Překlady článku
ID článku: 287756 - Produkty, které se vztahují k tomuto článku.
Střední: Vyžaduje základní dovednosti v oblasti maker, kódování a práce v různých prostředích.

Tento článek se vztahuje k Microsoft databázi (MDB nebo ACCDB) aplikace Access a projektu aplikace Microsoft Access (ADP).
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Příznaky

Když odstraníte poslední záznam nebo záznamy v tabulce nebo ve formuláři, který má pole Automatické číslo a potom komprimace databáze, nespustí se na další vyšší číslo pole Automatické číslo, při přidání nových záznamů.

Příčina

Nainstalována Jet 4.0 Service Pack 4 (msjet40.dll verze 4.00.2927.4) nebo novější.

Řešení

Toto chování obejít, použijte jednu z následujících dvou metod.

Metoda 1

Vytvoření nové tabulky a připojit existující záznamy do nové tabulky. Nové záznamy přidané do této tabulky bude začínat Automatické číslo hodnota jednoho Pokud programově nastavit hodnotu přírůstek.

Poznámka: Pokud již nepotřebujete vaše záznamy můžete také obnovit pole Automatické číslo odstraněním všechny záznamy z tabulky a komprimování databáze. Však použití této metody nelze získat odstraněné záznamy zpět.

Chcete-li vytvořit novou tabulku a připojit existující záznamy do nové tabulky v databázi Microsoft Access (.mdb), postupujte takto:
  1. Klepněte na tabulku v okně databáze.
  2. Stisknutím Kláves CTRL + C.
  3. Stisknutím Kláves CTRL + V.
  4. V dialogovém okně Vložit tabulku jako klepněte na přepínač Jen struktura zadejte název tblNewTable a potom klepněte na tlačítko OK.
  5. Microsoft Office Access 2003 nebo Microsoft Access 2002 přejděte v nabídce Zobrazit na Objekty databáze, klepněte na položku dotazy a potom poklepejte na položku vytvořit dotaz v návrhovém zobrazení.

    V aplikaci Microsoft Office Access 2007 klepněte na kartu vytvořit a potom klepněte na tlačítko Návrh dotazu ve skupině jiné.
  6. V dialogovém okně Zobrazit tabulku klepněte staré tabulky, klepněte na tlačítko Přidat a potom klepněte na tlačítko Zavřít.
  7. V aplikaci Access 2003 nebo Access 2002 klepněte v nabídce dotaz na Přidávací dotaz.

    V aplikaci Access 2007 klepněte ve skupině Typ dotazu na kartě Návrhpřipojit.
  8. V dialogovém okně Přidat klepněte tblNewTable v poli Název tabulky a potom klepněte na tlačítko OK.
  9. Přidáním všech polí do návrhové mřížky dotazu s výjimkou pole Automatické číslo.
  10. V aplikaci Access 2003 nebo Access 2002, v nabídce dotaz klepněte na tlačítko Spustit připojit záznamy do nové tabulky.

    V aplikaci Access 2007 klepněte na tlačítko Spustit ve skupině výsledků na kartě Návrh připojit záznamy do nové tabulky.
  11. Otevřete tabulku tblNewTable a pak přidejte záznam.

    Poznámka: Automatické číslo je další vyšší číslo.

Metoda 2

Použít následující funkce v databázi Microsoft Access (MDB) programově obnovit ohlašovací hodnotu pole Automatické číslo. Funkci přidat modul a potom spustit v ladicím okně. Nebo volání funkce z příkazové tlačítko nebo makro.

Poznámka: Pro tento kód spustit správně je nutné odkazovat 2.x Microsoft ActiveX Data Objects a 2.x rozšíření Microsoft ADO pro DDL a zabezpečení knihovny (kde 2.x je 2.1 nebo vyšší.) Chcete-li tak učinit, klepněte v nabídce Nástroje v editoru jazyka odkazy. Ujistěte se, že Microsoft ActiveX Data Objects 2.x a jsou zaškrtnuta políčka rozšíření Microsoft ADO 2.x pro DDL a zabezpečení knihovny.
Function ChangeSeed(strTbl As String, strCol As String, lngSeed As Long) As Boolean
'You must pass the following variables to this function.
'strTbl = Table containing autonumber field
'strCol = Name of the autonumber field
'lngSeed = Long integer value you want to use for next AutoNumber.

Dim cnn As ADODB.Connection
Dim cat As New ADOX.Catalog
Dim col As ADOX.Column

'Set connection and catalog to current database.
Set cnn = CurrentProject.Connection
cat.ActiveConnection = cnn

Set col = cat.Tables(strTbl).Columns(strCol)

col.Properties("Seed") = lngSeed
cat.Tables(strTbl).Columns.Refresh
If col.Properties("seed") = lngSeed Then
    ChangeSeed = True
Else
    ChangeSeed = False
End If
Set col = Nothing
Set cat = Nothing
Set cnn = Nothing

End Function
				

Prohlášení

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.

Další informace

Postup reprodukce problému

  1. Nainstalovat Jet 4.0 Service Pack 4 (SP4) nebo novější. Další informace o získání nejnovější aktualizace service pack pro Microsoft Jet klepněte na následující číslo článku databáze Microsoft Knowledge Base:
    239114Získání poslední aktualizace Service Pack pro databázový stroj Microsoft Jet 4.0
  2. V aplikaci Access 2003 nebo Access 2002 vytvořit novou databázi.
  3. Vytvořit následující tabulku:
       Table: tblExample
       ---------------------
       Field Name: ID
       Data Type: AutoNumber
       
       Field Name: MyText
       Data Type: Text
       
       Table Properties: tblExample
       ----------------------------
       PrimaryKey: ID
    					
  4. Uložte tabulku jako tblExample.
  5. V nabídce Zobrazit klepněte na položku Zobrazení datového listu.
  6. Přidat 10 záznamů do tabulky.
  7. Odstranit poslední tři záznamy, které jste přidali do tabulky.
  8. Zavřete tabulku.
  9. V nabídce Nástroje přejděte na položku Správa databáze a klepněte na příkaz Zkomprimovat a opravit databázi.
  10. Otevřete tabulku tblExample.
  11. Přidat nový záznam v tabulce.

    Všimněte si, že automatické číslo 11 spíše než 8, jako by očekáváte.
Poznámka: Po kompresi projektu v aplikaci Access projektu (.adp), uvidíte číslo, které očekáváte v poli Automatické číslo při přidání záznamu. Však při uložení záznamu změní Automatické číslo. V tomto příkladu naleznete 8 dokud je záznam potvrzené. Potom se číslo změní na 11. Tato situace nastane, protože Automatické číslo je přiřazen na serveru po záznamu je potvrzena.

Odkazy

Další informace naleznete následujícím článku znalostní databáze Microsoft Knowledge Base:
202121Nelze změnit výchozí zdrojovou a přírůstkovou hodnotu v uživatelském rozhraní

Vlastnosti

ID článku: 287756 - Poslední aktualizace: 13. června 2007 - Revize: 9.1
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
Klíčová slova: 
kbmt kbprogramming kbado kbupdateissue kbbug kbnofix KB287756 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:287756

Dejte nám zpětnou vazbu

 

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