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

  1. Starta Microsoft Access.

  2. Skapa en ny Db1.mdb-databas.

  3. Så här skapar du en obligatorisk exempeltabell:

    1. I fönstret Databas klickar du på Tabeller under Objekt.
    2. I det högra fönstret dubbelklickar du på Skapa tabell i designvyn.
    3. På den första raden i kolumnen Fältnamn skriver duID och anger sedan motsvarande datatyp till Räknare.
    4. På den andra raden i kolumnen Fältnamn skriver duRates och anger sedan motsvarande Datatyp till Tal.
    5. I fönstret Fältegenskaper klickar du på fliken Allmänt.
    6. Ställ in egenskapen FormatValuta.
    7. Klicka på SparaArkiv-menyn.
    8. Skriv Priser i dialogrutan Spara som och klicka sedan på OK.
    9. Klicka på StängArkiv-menyn.
  4. I fönstret Databas klickar du på Formulär under Objekt.

  5. Dubbelklicka på Skapa formulär i designvyn i det högra fönstret.

  6. 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"
  7. Klicka på Kod på Visa-menyn för att öppna Microsoft Visual Basic Editor.

  8. 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 If
    
  9. Klicka på SparaArkiv-menyn.

  10. Skriv FormulärTest i dialogrutan Spara som och klicka sedan på OK.

  11. Klicka på StängArkiv-menyn.

  12. I den högra rutan i databasfönstret dubbelklickar du på FormulärTest.

  13. 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.