當您將新的記錄加入表格時,[您輸入的文字不是清單中的專案] 錯誤

注意

Office 365 專業增強版 即將重新命名為 Microsoft 365 企業版應用程式。 如需關於此變更的詳細資訊,請閱讀此部落格文章

原始 KB 編號:   824176

注意

本文僅適用于 Microsoft Access 資料庫 ( .mdb) 。 需要基本的宏、編碼和互用性技能。

徵狀

當您嘗試使用表單上下拉式方塊的 NotInList 事件,以程式設計方式將新記錄新增至資料表時,可能會收到下列錯誤訊息:

您輸入的文字不是清單中的專案。
選取清單中的專案,或輸入符合其中一個所列專案的文字。

不過,新的記錄會順利加入至表格中。 因此,您輸入的新專案會新增至下拉式方塊中的專案清單。

原因

當下拉式方塊系結至數值資料型別欄,且欄的 format 屬性設定為 貨幣歐元 時,就會發生此問題。

因應措施

若要解決此問題,請在下拉式方塊中輸入值,以符合下拉式方塊所系結的欄的格式。 例如,如果欄的格式是 Currency ,請輸入 $20,而不是20。

不過,如果欄的格式設定為 [ 歐元 ],您可能會無法輸入符合欄格式的數位。

注意

如果您重設欄的 Format 屬性,就不會發生問題。

其他相關資訊

您也可能會收到錯誤訊息,當您輸入對應至下拉式方塊中已存在之專案的數位時,也會收到錯誤訊息。 如果您輸入的數位不符合已存在之基礎 recordset 的格式化專案,可能會發生此問題。

在 Microsoft Office Access 2003 中再現行為的步驟

  1. 開始 Microsoft Access。

  2. 建立新的 Db1 資料庫。

  3. 若要建立必要的範例表格,請遵循下列步驟:

    1. 在 [資料庫] 視窗中,按一下 [ 物件 ] 底下的 [ 資料表 ]。
    2. 在右窗格中,在 [設計檢視] 中按兩下 [ 建立資料表 ]。
    3. [功能變數名稱] 欄的 第一列 [typeID],然後將對應的 資料類型 設為 AutoNumber
    4. [功能變數名稱] 欄的 第二列中,typeRates,然後將對應的 資料類型 設定為 [ 數位 ]。
    5. 在 [ 欄位屬性 ] 窗格中,按一下 [ 一般 ] 索引標籤。
    6. Format 屬性設定為 Currency
    7. 在 [檔案 ] 功能表上,按一下 [ 儲存 ]。
    8. 在 [ 另存 新檔] 對話方塊中,輸入速度,然後按一下 [確定 ]。
    9. 在 [檔案 ] 功能表上,按一下 [ 關閉 ]。
  4. 在資料庫視窗中,按一下 [ 物件 ] 底下的 [ 表單 ]。

  5. 在右窗格中,在 [設計檢視] 中按兩下 [ 建立表單 ]。

  6. ComboTest 下拉式方塊新增至表單,然後設定下列屬性:

    屬性
    名字: ComboTest
    系結資料行: 1
    RowSourceType: 資料表/查詢
    列來源: 選取 [Rates.ID]、[費率]。費率的費率;
    自動展開:
    限制清單:
    欄計數:
    欄寬: 0 "; 1"
  7. 在 [ View ] 功能表上,按一下 [程式 代碼 ] 以開啟 Microsoft Visual Basic 編輯器。

  8. 在 [ ComboTest ] 下拉式方塊的 NotInList 事件中貼上下列程式碼。

    注意

    本文中的範例程式碼會使用 Microsoft Data Access 物件。 若要讓此程式碼正確執行,您必須參考 Microsoft DAO 3.6 物件程式庫。 若要這麼做,請在 Visual Basic 編輯器中按一下 [ 工具 ] 功能表上的 [ 參照 ],並確定已選取 [ Microsoft DAO 3.6 物件程式庫 ] 核取方塊。

    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. 在 [檔案 ] 功能表上,按一下 [ 儲存 ]。

  10. 在 [ 另存 新檔] 對話方塊中,輸入 FormTest,然後按一下 [確定 ]。

  11. 在 [檔案 ] 功能表上,按一下 [ 關閉 ]。

  12. 在 [資料庫] 視窗的右窗格中,按兩下 [ FormTest ]。

  13. 在下拉式方塊中輸入號碼,然後按 ENTER 鍵。

    會觸發 NotInList 事件。 您會收到本文「現象」一節所述的錯誤訊息。

參考

如需 NotInList 事件的詳細資訊,請按一下 [說明 ] 功能表上的 [ Microsoft Access 説明 ],然後在 [Office 小幫手] 或 [應答] 嚮導中輸入 NotInList 事件 ,然後按一下 [ 搜尋 ] 以查看主題。