求助~~~~~~~~~~!急(100分)

  • 主题发起人 主题发起人 shell~
  • 开始时间 开始时间
S

shell~

Unregistered / Unconfirmed
GUEST, unregistred user!
我从其它的多个表的一些记录逐一添加到一个新表同时也把这些记录一个一个添加到listbox
中,我想实现一个功能,在listbox中删除一个记录时,相应表的记录也会被删除大家能不能
帮帮我
 
那你在listbox中删除记录的时候添条语句把表中的记录删除掉不就可以了吗?
 
我要如何关联listbox和表呢?
我是这样想的::把listbox要删除的值给一个变量,,然后利用
delete form table where--------
可是第一步不知如何下手能帮我吗
 
while not ADOTable_NoteBook.Eof do
begin
FindListBox.Items.AddObject(ADOTable_NoteBook.FieldByname('recTitle').AsString, pointer(ADOTable_NoteBook.FieldByname('recSerial').asinteger));//存储列表名和字段标识进LIXTBOX
ADOTable_NoteBook.Next ;
end;
删除时 定位记录 下面的操作我想不写出来你也会了吧?
这是写在你点LISTBOX时
ADOTable_NoteBook.Locate('recSerial',integer(FindListBox.Items.Objects[FindListBox.ItemIndex]),[])
 
不大懂刚学能不能说清楚一点
谢谢
 
点击listbox中的数据会得到其中数据的index
根据index获得点击的数据,就可以找到数据库的数据了
 
TO nibul:
你能不能说清楚一点你的想法和我一样
我如何根据得到的index得到对应的字段
 
在你删除 listbox中的数据的时候,
是用ListBox1.Items.Delete(I);吧,
在这之前用ListBox1.Items.Strings;
得到值再删除数据库中的记录就行了,

 
你点击的时候可以从ListBox1.Items.Strings得到数据,可以以得到数据为条件
对相应数据表进行查询啊,查询到了再删除你查询到的记录就可以了。你不会连查询也不会
吧?
 
这是在ListBox 的双击事件中
procedure ListBox1DblClick(Sender: TObject);
begin
table1.close;
table1.Open;
if MessageDlg('确定删除?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
if table1.Locate('fieldname',ListBox1.Items[ListBox1.ItemIndex],[])then
//fieldname 为字段名
table1.Delete;
ListBox1.Items.Delete(ListBox1.ItemIndex);
end;
end;
 
我用了happyloner兄的代码,
data.ADD.close;
data.ADD.Open;
if MessageDlg('确定删除?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
if data.ADD.Locate('名称',ListBox1.Items[ListBox1.ItemIndex],[])then
data.ADD.Delete;
ListBox1.Items.Delete(ListBox1.ItemIndex);
end;
可是却出现了如下的错误提示信息
list index out of bounds(-1).
这是什么原因吗大家帮我这个菜鸟吧
这里多谢了,回答后我再多给分给大家好不好?
 
我已经知道错在什么地方了!
这是因为data.ADD.Locate里要读取ListBox1.Items[ListBox1.ItemIndex],而如果此时
ListBox1里没有内容被选中的话,ListBox1.ItemIndex=-1,也因此会出错,因为无法读
取内容。
你在locate的时候必须在listbox1里要有内容被选中,这就可以了!要不你可以加一个
异常处理,也可以避免此错误!
我替你改了一下,你试试:
data.ADD.close;
data.ADD.Open;
if listbox1.itemindex>0 then
begin
if MessageDlg('确定删除?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
if data.ADD.Locate('名称',ListBox1.Items[ListBox1.ItemIndex],[])then
data.ADD.Delete;
ListBox1.Items.Delete(ListBox1.ItemIndex);
end;
end
else
if listbox1.itemindex=-1 then
showmessage('没有内容被选中');

 
aaaaaaaaaaaaaa
 
后退
顶部