Access记录比较问题(50)

  • 主题发起人 主题发起人 bnlywj
  • 开始时间 开始时间
B

bnlywj

Unregistered / Unconfirmed
GUEST, unregistred user!
如何用ADO组件比较两个字段中记录,找出相同的和不同的记录
 
Select * From table where field1=Field2Select * From table where Not( field1=Field2)
 
有没有代码啊,并用listbox显示出来啊
 
用ADOQuery用上面的SQL打开数据集,然后 while Not adoquery.eof do遍历数据集,把需要的字段通过adoquery.fieldByName('').asstring加到listBox中并显示出来
 
我已经用combobox列出了各个字段,关键是用什么组件,在点击字段后提取记录,然后再比较各个记录,并用如listbox等组件显示出相同的记录和不同的,有代码吗请教
 
不是找字段的异同啊,是记录的差异啊,帮帮忙
 
Select * From TableGroup By 全部字段 having Count(*)>1有重重复的
 
看看我写的代码,找找问题,谢谢帮忙procedure TForm1.Button1Click(Sender: TObject);var i: Integer=0; j: Integer=0;begin ListBox1.Clear; ADOTable1.Close; ADOTable1.TableName:=ComboBox1.Items[0]; ADOTable2.TableName:=ComboBox2.Items[0]; ADOTable1.Open; Try begin while i < ADOTable1.FieldByName(ComboBox1.text).Value.Count // 这里想获得记录的数目,估计不对,请指点 do begin while j < ADOTable2.FieldByName(ComboBox2.text).Value.Count // 同上 do begin if ADOTable1.FieldByName(ComboBox2.text).Value = ADOTable2.FieldByName(ComboBox1.text).Value // 这里不知如何和变量i和j联系起来 then ListBox1.Items.Add(ADOTable2.FieldByName.(ComboBox4.text).Value); j:=j+1 else j:=j+1; end; i:=i+1; end; end; except if ListBox1.ItemIndex =0 then ShowMessage('没有相同的记录'); end;end;
 
1.对于数据集的循环建议用while not ADOTable1.eof dobegin ... ADOTable1.Next;end;2.取得记录数的函数是ADOTable1.RecordCount,但不一定准确,有时候返回-1;3.数据表和字段,你好像没有区分清楚。4.ListBox1.ItemIndex表示当前选中的条目的顺序号,你需要的应该是ListBox1.Count。5.ADOTable2忘记调用ADOTable2.First;6.你的查找完全可以用sql来完成。 ListBox1.Clear; ADOquery1.close; ADOquery1.sql.text:='select b.字段名称 from 表a a inner join 表b b on a.关联字段=b.关联字段 '; ADOquery1.Open; while not ADOquery1.eof do begin ListBox1.Items.Add(ADOquery1.fields[0].Asstring ); ADOquery1.next; end; ADOquery1.Close;-----------------------------就50分,呵呵,给分!
 
这是我写的代码,求教procedure TForm1.Button5Click(Sender: TObject);var i: Integer=0; j: Integer=0;begin ListBox1.Clear; Try begin while i < ADOTable1.FieldByName(ComboBox1.text).Value.Count // 此处想获得ComboBox1.text中字段的数目作为计数,估计不对,求教 do begin while j < ADOTable2.FieldByName(ComboBox2.text).Value.Count // 同上 do begin if ADOTable1.FieldByName(ComboBox2.text).Value = ADOTable2.FieldByName(ComboBox1.text).Value // 此处不知道如何和变量i和j关联起来,求教 then ListBox1.Items.Add(ADOTable2.FieldByName(ComboBox2.text).Value); // 同上 j:=j+1 else j:=j+1; end; i:=i+1; end; end; except if ListBox1.ItemIndex =0 then ShowMessage('没有相同的记录'); end;end;
 
多人接受答案了。
 
后退
顶部