2013-10-01 3 views
-2

Я использую базу данных доступа с delphi 7, и у меня есть записи зарегистрированных студентов. Мне нужен код, который может отображать количество студентов-мужчин из базы данных на ярлыке в формы, а также учеников девушек на другом лейбле. Имя поля в базе данных доступа - пол, тогда как типы данных - это мужчины и женщины. Поэтому, если число учеников мужского пола составляет 20 и 30 женщин, оно должно отображать 20 на этикетке и 30 женщин на другой этикетке. Есть ли простой код, который я могу сделать, используя adoquery1 с источником данных1, который я использовал для сохранения записи в базе данных? названия полей включают Имя и фамилия Другое имя и полКак отобразить число отфильтрованных записей в ярлыке

+4

Да, вы можете сделать это, используя adoquery с источником данных. Однако, как бы вы это ни занимались, я не могу вам помочь, потому что вы не предоставили никакой информации о своей схеме базы данных, нет данных примера, ни одного примера вывода, который хотите получить, и не пытайтесь самостоятельно писать SQL для этого. (Это простой запрос с использованием 'COUNT' и' GROUP BY', но без информации о вашей схеме БД трудно представить пример.) Пожалуйста, [edit], чтобы предоставить более конкретную информацию, чтобы мы могли попробовать и помочь вам. Мы не можем видеть ваш экран с того места, где мы сидим. –

ответ

1

Что-то вроде этого должно сделать трюк.

AdoQuery1.Active:= false; 
AdoQuery1.SQL.Text:= ' select gender, count(*) as cnt from atable ' 
        +' where something = 10 ' 
        +' group by gender ' 
        +' order by (gender = "M") '; 
AdoQuery1.Active:= true; 
DataSrc:= TDataSource.Create(Self); 
DataSrc.DataSet:= AdoQuery1; 
DataSrc.Enabled:= true; 
DataSrc.FindFirst; 
if lowercase((DataSrc.FieldByName('gender')) = 'm' then begin 
    LabelMale.Caption:= DataSrc.FieldByName('cnt').AsString; 
    Success:= DataSrc.FindNext; 
end 
else LabelMale.Caption:= 'none'; 
if (Success) and (lowercase((DataSrc.FieldByName('gender')) = 'f') then begin 
    LabelFemale.Caption:= DataSrc.FieldByName('cnt').AsString; 
end 
else LabelFemale.Caption:= 'none'; 
Смежные вопросы