2012-07-14 69 views

回答

2

可惜你不能永遠不改變的形式來設計模式,增加新的值更改的行源。可以用代碼來做到這一點,但當人們工作時,這不是一個好主意。最簡單的事情就是創建一個小表並添加值。當您關閉表格時,新值將被保存。

艾倫·布朗對如何做到這一點的描述:http://allenbrowne.com/ser-27.html

這是他給出了一個想法:

Private Sub CategoryID_NotInList(NewData As String, Response As Integer) 
    Dim strTmp As String 

    'Get confirmation that this is not just a spelling error. 
    strTmp = "Add '" & NewData & "' as a new product category?" 
    If MsgBox(strTmp, vbYesNo + vbDefaultButton2 + vbQuestion, "Not in list") = vbYes Then 

     'Append the NewData as a record in the Categories table. 
     strTmp = "INSERT INTO Categories (CategoryName) " & _ 
      "SELECT """ & NewData & """ AS CategoryName;" 
     DBEngine(0)(0).Execute strTmp, dbFailOnError 

     'Notify Access about the new record, so it requeries the combo. 
     Response = acDataErrAdded 
    End If 
End Sub 
1

你需要的屬性limit to list設置爲true。

,然後再在不在該潛在增加值組合框列表事件添加一些代碼。 Here is a tutorial.或者您可以查看其他答案。

請注意,它通常是更好地利用存儲的值組合框的表。使用值列表,除非您禁用快捷菜單,否則用戶可以右鍵單擊組合框,選擇Edit List Items...並修改列表,即使它設置爲限制列表...這可以有效擊敗您嘗試放置在列表上的任何限制領域。