【发布时间】:2017-03-09 22:54:03
【问题描述】:
我正在为我面临的一个相当严重的问题寻找解决方案; 我想删除 dbGrid 中的记录,但是当我单击我的编码按钮并确认“删除”时,我没有立即找到结果。为了找到删除记录的结果,我必须关闭程序并重新运行它。只有这样我才能看到记录被删除。
我的代码基本如下
procedure TfrmPunte.btnDeleteClick(Sender: TObject);
var
sName, sLeerderNo : string;
begin
with dmPunte do
begin
sLeerderNo := tblLeerder['LeerderNr'];
sName := tblLeerder['NaamVan'];
if MessageDlg('Is jy seker dat jy ' + sName + ' met Leerder Nommer ' + sLeerderNo + ' wil wis van die rekords? Neem kennis dat al die rekords van sy/haar aktiwiteite ook uitgevee sal word!', mtWarning, [mbOk, mbCancel],0) = mrOK then
tblDeelname.Open;
tblDeelname.First;
while NOT tblDeelname.Eof do
begin
if tblDeelname['LeerderNr'] = sLeerderNo then
tblDeelname.Delete;
tblDeelname.Next;
end;
tblLeerder.Delete;
tblLeerder.Active := False;
tblLeerder.Active := True;
end;
end;
我正在使用连接到 ADO 连接的 ADO 表连接到 ACCESS 数据库。我很抱歉,一些变量名称是南非荷兰语。 我该怎么办?
【问题讨论】:
-
应该删除的记录仍然显示在 db Grid 中,我正在使用带有 ADO 连接的 ADO 表。
-
快速查看:删除一条记录后,next after delete 将跳过一条记录。你必须在下一个之前插入 else
-
我唯一能想到的是,你的 dbgrid 连接到其他数据集
-
哦,请停止对这个问题投反对票。他是一个非常新的成员。你会这样说欢迎吗?请提供帮助。
-
您似乎在
if MessageDlg() then行之后的行周围缺少begin - end对。
标签: delphi ms-access ado dbgrid