2014-03-06 38 views
0

我需要一個組合框可以綁定到一個表,並接受一個新的條目,而不插入到表中的新條目,直到記錄中的所有其他字段準備插入。我嘗試在使用SQL插入語句的地方使用代碼,但是當我想將表單上的其餘數據保存到表中時,其餘數據顯示在新記錄中。所以我有一個記錄除了項目名稱和其他所有記錄以外的其他記錄。 我也試過這樣:可更新的Microsoft Access組合框不插入表

Append2Table = acDataErrContinue 
    vField = cbo.ControlSource 
    If Not (IsNull(vField) Or IsNull(NewData)) Then 
     sMsg = "Do you wish to add the entry " & NewData & " for " & cbo.Name & "?" 
     If MsgBox(sMsg, vbOKCancel + vbQuestion, "Add new value?") = vbOK Then 
      Set rst = CurrentDb.OpenRecordset(cbo.RowSource) 
      rst.AddNew 
       rst(vField) = NewData 
      rst.Update 
      rst.Close 
      Append2Table = acDataErrAdded 
     End If 
    End If 

我不希望使用的編輯,因爲我將有很多的記錄,同一個項目的名字,當我使用的INSERT語句添加的項目名稱我不不管怎麼說,它都會返回ID字段,以便我可以搜索該信息並用其餘信息編輯記錄。

非常感謝您的任何建議。

+0

首先,Access 2010具有內置功能,用於在記錄不存在時將記錄添加到查找表中。這將節省您編寫所有上述代碼。 –

+0

我有組合框,其中行來源是查詢,行來源類型是表/查詢。我必須這樣做,因爲有太多的項目要顯示。組合框的內置功能僅在「行來源類型」爲「值列表」時起作用。當我嘗試鍵入新內容時,我會看到「您輸入的文本不是列表中的項目」。 – user3389034

+0

當「行來源」是表格或查詢時,內置功能也可以使用。 –

回答

0

你想要做的只是添加查找項目,如果它將被使用,因此等待插入。

我不明白這是如何實現的,因爲您將需要查找值的ID來執行插入操作。

我不建議手動插入,這很麻煩,讓Access爲你做。

我認爲在這種情況下最好的辦法是讓用戶輸入查找項目,並有一些清理機制,當窗體關閉從查找表中刪除任何未使用的項目。