2015-09-16 32 views
0

在Microsoft Access 2010上,我設置了數據庫。在這個數據庫中,我使用了我正在使用的動物的id編號以及每個運行的測試。我試圖做到這一點,以便我的研究人員可以在運行新測試時使用表單添加到數據庫中,但不允許對已輸入的測試結果進行任何編輯或刪除操作。無需編輯和刪除即可訪問2010表單添加件

我已經嘗試設置窗體的屬性如下:

加法:是的

編輯:沒有

缺失:沒有

這並不讓我添加任何新數據的形式,但。當我將編輯設置爲是時,我可以添加新數據並編輯現有數據,這不是我想要的。有沒有什麼辦法解決這一問題?最好不用代碼,或者詳細解釋vba的方法,如果這是解決問題的唯一方法。

+0

看看https://msdn.microsoft.com/en-us/library/office/ff820845.aspx acFormDataMode - 你可以給不同的人不同的特權。 – Fionnuala

+0

我已經試過這個頁面,謝謝。它允許不同的人有不同的特權,但每個人都允許添加和編輯,而我只需要添加。 – ckraft28

+0

我認爲你沒有檢查acFormDataMode,請閱讀https://msdn.microsoft.com/en-us/library/office/ff191834.aspx – Fionnuala

回答

0

我不知道任何標準的Access功能,只有一個表單中的記錄集才能鎖定和解鎖記錄集字段。

您可以使用一種變通方法(使用VBA):

表單屬性:

加法:是的

編輯:是的

缺失:沒有

在字段屬性:

設置每個字段鎖定:葉小號

在進入─離開事件爲每個字段添加這個(與實際字段名替換fieldName)

Private Sub FIELDNAME_Enter() 
    If Me.NewRecord Then 
     Me.FieldName.Locked = False 
    Else 
     'to be sure... 
     Me.FieldName.Locked = True 
    End If 
End Sub 

Private Sub FIELDNAME_Exit(Cancel As Integer) 
    Me.FieldName.Locked = True 
End Sub 

我會強烈建議只爲輸入數據創建第二個表格。 你應該設置第二個表格屬性數據錄入 =真正的(我不知道如果數據錄入是對因翻譯)或參數DataMode做到這一點通過VBA命令的OpenForm:= acFormAdd

你可以然後從第一個窗體通過按鈕打開第二個「輸入」表單。

相關問題