Felet "Texten du angav är inte ett objekt i listan" när du lägger till en ny post i en tabell
Anteckning
Office 365 ProPlus byter namn till Microsoft 365-appar för företag. Mer information om den här ändringen finns i det här blogginlägget.
Ursprungligt KB-nummer: 824176
Anteckning
Den här artikeln gäller endast för Microsoft Access-databaser (.mdb). Kräver grundläggande makron, kodning och kompatibilitetsfärdigheter.
Symptom
När du försöker att programmässigt lägga till en ny post i en tabell med hjälp av händelsen NotInList för kombinationsrutan i ett formulär kan du få följande felmeddelande:
Den text du angav är inte ett objekt i listan.
Välj ett objekt i listan eller skriv texten som matchar en av posterna i listan.
Den nya posten läggs dock till i tabellen. Det innebär att det nya objektet du angav läggs till i listan över objekt i kombinationsrutan.
Orsak
Det här problemet uppstår när kombinationsrutan är bunden till en kolumn av datatypen Tal och formategenskapen för kolumnen är inställd på Valuta eller Euro.
Lösning
Du kan komma runt det här problemet genom att skriva värdet i kombinationsrutan som matchar formatet på den kolumn som kombinationsrutan är bunden till. Om formatet för kolumnen till exempel är Valuta skriver du 200 i stället för 20.
Men om formatet för kolumnen är inställt på Euro kanske du inte kan ange ett tal som matchar kolumnens format.
Anteckning
Om du återställer egenskapen Format för kolumnen uppstår inte problemet.
Mer information
Du kan också få ett felmeddelande när du skriver ett tal som motsvarar ett objekt i den kombinationsruta som redan finns. Det här problemet kan uppstå om talet du skriver inte matchar de formaterade posterna i den underliggande postuppsättningen som redan finns.
Steg för att återskapa beteendet i Microsoft Office Access 2003
Starta Microsoft Access.
Skapa en ny Db1.mdb-databas.
Så här skapar du en obligatorisk exempeltabell:
- I fönstret Databas klickar du på Tabeller under Objekt.
- I det högra fönstret dubbelklickar du på Skapa tabell i designvyn.
- På den första raden i kolumnen Fältnamn skriver duID och anger sedan motsvarande datatyp till Räknare.
- På den andra raden i kolumnen Fältnamn skriver duRates och anger sedan motsvarande Datatyp till Tal.
- I fönstret Fältegenskaper klickar du på fliken Allmänt.
- Ställ in egenskapen Format på Valuta.
- Klicka på Spara på Arkiv-menyn.
- Skriv Priser i dialogrutan Spara som och klicka sedan på OK.
- Klicka på Stäng på Arkiv-menyn.
I fönstret Databas klickar du på Formulär under Objekt.
Dubbelklicka på Skapa formulär i designvyn i det högra fönstret.
Lägg till en KombinationsrutaTest i formuläret och ange sedan egenskaperna enligt följande:
Egenskap Värde Namn: ComboTest Bunden kolumn: 1 RowSourceType: Tabell/fråga Radkälla: SELECT Rates.ID, Rates.Rates FROM Rates; Utöka automatiskt: Ja Begränsa till lista: Ja Antal kolumner: 2 Kolumnbredder: 0";1" Klicka på Kod på Visa-menyn för att öppna Microsoft Visual Basic Editor.
Klistra in följande kod i händelsen NotInList för kombinationsrutan ComboTest.
Anteckning
I exempelkoden i den här artikeln används Microsoft Data Access-objekt. För att den här koden ska köras korrekt måste du referera till Microsoft DAO 3.6-objektbiblioteket. Det gör du genom att klicka på Referenser på menyn Verktyg i Visual Basic Editor och kontrollera att kryssrutan Microsoft DAO 3.6-objektbibliotek är markerad.
Dim Db As DAO.Database Dim Rs As DAO.Recordset Dim Msg As String Msg = "'" & NewData & "' is not in the list." & vbCr & vbCr Msg = Msg & "Do you want to add it?" If MsgBox(Msg, vbQuestion + vbYesNo) = vbNo Then Response = acDataErrContinue MsgBox "Try again." Else Set Db = CurrentDb Set Rs = Db.OpenRecordset("Rates", dbOpenDynaset) Rs.AddNew Rs![Rates] = NewData Rs.Update Response = acDataErrAdded End IfKlicka på Spara på Arkiv-menyn.
Skriv FormulärTest i dialogrutan Spara som och klicka sedan på OK.
Klicka på Stäng på Arkiv-menyn.
I den högra rutan i databasfönstret dubbelklickar du på FormulärTest.
Skriv ett tal i kombinationsrutan och tryck på RETUR.
Händelsen NotInList utlöses. Du får felmeddelandet som nämns i avsnittet "Symptom" i den här artikeln.
Referenser
Om du vill ha mer information om händelsen NotInList klickar du på Hjälp om Microsoft Access på Hjälp-menyn, skriver NotInList-händelse i Office-assistenten eller Svarsguiden och klickar sedan på Sök för att visa ämnet.