首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

access统计解决办法

2012-03-25 
access统计我要统计access中某个表中的记录,其中sex为1的有多少条,为2的有多少条。并将数据显示在label的ca

access统计
我要统计access中某个表中的记录,其中sex为1的有多少条,为2的有多少条。并将数据显示在label的caption上,应该如何写呢。

[解决办法]

C/C++ code
AnsiString Str ;Str ="select count(*) as ct from tablename where sex=1"//or //Str ="select count(*) as ct from tablename where sex=2"ADOQuery1->Close();ADOQuery1->SQL->Clear();ADOQuery1->SQL->Add(ls_Str );ADOQuery1->Open();if(!ADOQuery1->Eof){   lable1->Caption = ADOQuery1->FieldByName("ct ")->AsString ;}
[解决办法]
可以 使用两次sql语句来得到
[解决办法]
探讨
C/C++ code
AnsiString Str ;
Str="select count(*) as ct from tablename where sex=1"//or//Str ="select count(*) as ct from tablename where sex=2"ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->S?-

[解决办法]
先连接SQL,用ADO连接, 
先添加一个ADOConnection(在ADO栏里),Name是ADOConnection1 
双击ADOConnection1的ConnectionString修改成 
提供程序:Microsoft OLE db provider for SQL Server 
后面那些用户名什么的你自己改成你要的。 
再添加一个ADOQuery,名为ADOQuery1,将ADOQuery1的Connection属性改为ADOConnection1 
在程序运行的时候 
先调用 ADOConnection->Open();打开数据库 
然后动态修改SQL语句,其中sqlstr为AnsiString型,例如 
C/C++ codesqlstr = "Select * from Table1";
 ADOQuery1->Close();
 ADOQuery1->SQL->Clear();
 ADOQuery1->SQL->Add(sqlstr);
 ADOQuery1->Open();
其中最后一句ADOQuery1->Open();是对于SQL语句为SELECT型的,若是SQL语句为Insert、Delete之类的不返回数据集的语句 
则将ADOQuery1->Open();修改为 
ADOQuery1->ExecSQL(); 

[解决办法]
楼上的都说完了。。代码也给了。。
那我来打个酱油好了。。。。
[解决办法]
SELECT sex, count(*) as ct 
FROM tablename 
GROUP BY sex


一次即可完成

[解决办法]
一次能查询完成.SQL语句如下

C/C++ code
AnsiString sSQL;sSQL = "select sum(case when sex = 1 then 1 else 0 end) sex1,sum(case when sex = 2 then 1 esle 0 end) sex2from table"ADO->SQL->Text = sSQL;ADO->Open;lable->Caption = "性别为1的有" + ADO->FieldByName("sex1")->AsString + "条记录,性别为2的有" + ADO->FieldByName("sex1")->AsString + "条记录";
[解决办法]
探讨
SELECT sex, count(*) as ct
FROM tablename
GROUP BY sex


一次即可完成

热点排行