如何用ado组件比较两个Acecss数据库记录(50)

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

bnlywj

Unregistered / Unconfirmed
GUEST, unregistred user!
我已经用两个combobox显示出了两个表中的各个字段,关键是用什么组件,在点击字段后提取记录,然后再比较各个记录,并用如listbox等组件显示出相同的记录和不同的记录请教
 
没有组件可以自动比较,或者是我没有理解你的问题。数据量大的,可以用query/adoquery在后台直接用sql查询比较。你的问题问的不是很清楚,别人不大好回答。
 
没想让组件自动比较,就是想知道用什么方法在点击字段后能提取记录,然后用算法比较谢谢
 
没写清楚,不是让组件自动比较,关键是用方法,在点击字段后提取记录,然后再用算法比较各个记录谢谢
 
具体些,可以吗
 
在combobox的Onchange事件里面写代码,用Adoquery查询数据库,提取数据。数据库提取数据必须要用到DataSet(即Table/query/ADOTable/ADOQuery),明白了吗?
 
能具体些吗,谢谢
 
你耍我们?
 
没有啊不是很懂啊,可以写些代码看看吗
 
这是我写的代码,求教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;
 
老实说,你的这段代码错的太多,思路也有点乱。
 
其实就是循环嵌套,可以帮帮忙吗或者你能写一段吗谢谢
 
你的另外一个贴里面,我已经写过了,估计你看都没看。
 
先是数据库,下一级是表,再下一级是字段,再下一级是记录吧我现在就是知道字段名,想比较字段中的记录啊用循环嵌套就行了吧
 
“字段中的记录”这种说法就让人难以理解。如果你不熟悉SQL,建议先学SQL,那样可以大大提高你的软件效率。如果你2个表各有100万条数据,通过这种循环,将会非常耗时,而使用SQL,快一点的话也就是几秒钟的事情,为何不试试更好的方法呢?而且,你循环中,都没使用到 ADOTable1.Next,看你代码,感觉好像对ADOTable才开始使用,许多方法目前还不清楚。
 
对,刚学ado,用的是access数据库,比如说字段名是姓名,那么这字段下面就有许多诸如张三啊、李四等的记录啊,现在两张表中都有姓名这个字段,要比较里面这些记录的不同啊,用SQL怎么解决啊,谢谢
 
请不要再说 “字段下面的记录”,说法不准确。你的要求可以这里理解: 在B表中查找姓名不在A表中的记录。请看我在那个帖子中给你的回复吧,想让别人在这里三言两语把SQL介绍让你明白,几乎不可能。去花几天时间学习SQL,学会了再来处理这个问题,就发现其实很简单了。不想再回答你的这个问题了,毕竟分不多,且回答了这么多次,你还是不明白。
 
就是比较两个字段所在列的记录的异同啊?????请教
 
多人接受答案了。
 
后退
顶部