我试图搜索这个,但发现没有任何帮助我。我正在尝试在一个学校项目上工作,我需要在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;
我不知道我做错了什么。任何帮助将不胜感激。
答案 0 :(得分:2)
如果您在数据集上调用可以更改活动记录的方法(例如First
,Last
,Next
或Locate
),数据集将调用{{3} },如果修改后Post
会更改;如果未修改则会Cancel
更新。结果是数据集位于dsBrowse
,导致它不接受编辑。
因此,请将您的代码更改为以下内容。我将使用CheckBrowseMode
,因为您的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;