2017-10-28 32 views
0

我试图搜索这个,但没有发现任何帮助我。我想在一所学校的项目,我需要一个记录添加到Access数据库的工作,但我得到的错误“数据集不编辑或插入模式。德尔福数据集不在编辑或插入模式

sName := ledName.Text; 
sUName := ledUserName.Text; 
sPass := ledPassword.Text; 
sEmail := ledEmail.Text; 
sCell := ledPhone.Text; 

dmUsers.tblUsers.ReadOnly := False; 

dmUsers.tblUsers.Open; 
dmUsers.tblUsers.Insert; 

dmUsers.tblUsers.Last; 
dmUsers.tblUsers['UserName'] := sUName; 
dmUsers.tblUsers['Password'] := sPass; 
dmUsers.tblUsers['Email'] := sEmail; 
dmUsers.tblUsers['Cell Number'] := sCell; 
dmUsers.tblUsers['Actual Name'] := sName; 
dmUsers.tblUsers['Balance'] := 0; 
dmUsers.tblUsers['Points'] := 0; 

dmUsers.tblUsers['Present'] := False; 

dmUsers.tblUsers.Post; 

我不知道我的”在做错误的。任何帮助,将不胜感激。

+1

在编辑数据集之前调用'Edit'。然后,只需调用Append(或者像你一样插入),然后移除你的Last(最后)呼叫。 – Victoria

回答

1

如果你调用数据集上的方法,可以改变活动记录(如FirstLastNextLocate)数据集将调用CheckBrowseMode,这将如果体改Post变化或Cancel新记录如果没有修改,结果是数据集在dsBrowse,causi它不接受编辑。

因此,将您的代码更改为以下内容。我将使用Append,因为您的Last调用表明您希望在数据集的末尾有新记录。

sName := ledName.Text; 
sUName := ledUserName.Text; 
sPass := ledPassword.Text; 
sEmail := ledEmail.Text; 
sCell := ledPhone.Text; 

dmUsers.tblUsers.ReadOnly := False; 

dmUsers.tblUsers.Open; 

dmUsers.tblUsers.Append; 

dmUsers.tblUsers['UserName'] := sUName; 
dmUsers.tblUsers['Password'] := sPass; 
dmUsers.tblUsers['Email'] := sEmail; 
dmUsers.tblUsers['Cell Number'] := sCell; 
dmUsers.tblUsers['Actual Name'] := sName; 
dmUsers.tblUsers['Balance'] := 0; 
dmUsers.tblUsers['Points'] := 0; 

dmUsers.tblUsers['Present'] := False; 

dmUsers.tblUsers.Post;