![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запрос на выборку заданий для студентов по варианту [D7, Access]
ВладиславМинск © (2009-05-25 17:44:00)Уважаемые друзья, проблема в следующем..
Суть программы такова..
Имеется БД в Access которая содержит заданий по контрольным работам для учащихсмя заочного отделения.
в бд входит одна таблица с полями - Название_предмета; Номер семестра; Номер_варианта; Задание.
Учащийся открывает программу вводит номер семестра, свой личный номер (состоящий из 6 цифр) две последние цифры указывают на его номер в журнале и соответственно на его вариант. Далее он нажимает на кнопку Вывести лист заданий и формируется файл содержайщий все задания всех предметов именно его варианта.
База Аксес подключенная с помощью АДО.
Подскажите пожалуйста, как составить запрос чтобы выдавало именно задания того варианта и того семестра который указал учащийся?? И чтобы вывод осуществился в файл вордовский например.. ну или Хотя бы в Мемо..
Буду очень очень благодарен!
Плохиш (2009-05-28 16:58:00) [21]
> Сергей М. © (28.05.09 16:56) [22]
Ты его добить решил, да? :-))
У тебя ж a и b текстовые :o)
Сергей М. (2009-05-28 16:57:00) [22]И опять ахинея))
Вот меня понесло-то)
ADOQuery1.Lines.Text :=' .......... WHERE nom_sem=' + a + ' AND nom_var=' + b
Сергей М. (2009-05-28 16:56:00) [23]
> Плохиш © (28.05.09 16:53) [19]
Тьфу)
И вправду ведь издеваюсь)
IntToStr, разумеется)
Сергей М. (2009-05-28 16:55:00) [24]
> Плохиш © (28.05.09 16:53) [19]
Это я-то издеваюсь ?)
Ты посмотри на [16])
Сергей М. (2009-05-28 16:54:00) [25]
> хорошенько я облажался
Не то слово)
Можно сказать - откровенно пытался ввести местную общественность в заблуждение)
Плохиш (2009-05-28 16:53:00) [26]
> Сергей М. © (28.05.09 16:52) [18]
> ADOQuery1.Lines.Text :=' .......... WHERE nom_sem=' + StrToInt(a)
> + ' AND nom_var=' + StrToInt(b)
>
Зачем над младенцем издеваешься?
Сергей М. (2009-05-28 16:52:00) [27]Очевиден же:
..
a:=sEdit1.Text;
b:=sEdit2.Text;
ADOQuery1.Lines.Text :=' .......... WHERE nom_sem=' + StrToInt(a) + ' AND nom_var=' + StrToInt(b)
..
Плохиш (2009-05-28 16:52:00) [28]
> Каков выход из ситуации?
Букварь-какой почитать...
Ega23 (2009-05-28 16:51:00) [29]
> Каков выход из ситуации? )
ALTER TABLE + F1
ВладиславМинск (2009-05-28 16:47:00) [30]Да.. хорошенько я облажался =)
Каков выход из ситуации? )
Сергей М. (2009-05-28 16:44:00) [31]
> SELECT name_pred, zadanie FROM zaokr where nom_sem=a and
> nom_var=b
Этот запрос не может быть выполнен вообще, потому что поля nom_semи nom_varу тебя числовые, а символы aи bне являются текстовым представлением числовых значений.
При такой ситуации попытка выполнения строки
ADOQuery1.Active:=True;
обязана привести к искл.ситуации и до наблюдения за гридом дело вообще не дойдет.
Так что давай уже не "примерно так", а "конкретно вот так") ..
ВладиславМинск (2009-05-28 16:36:00) [32]Ну все выглядит примерно так..
procedure Tfstud.Button1Click(Sender: TObject);
var a,b:string;
begin
a:=sEdit1.Text;
b:=sEdit2.Text;
ADOQuery1.Active:=True;
end;
вот.. а в ADOQuery самом
SELECT name_pred, zadanie FROM zaokr where nom_sem=a and nom_var=b
Сергей М. (2009-05-28 16:18:00) [33]Чем здесь-то не нравится ?
Приведи фрагмент кода, формирующего запрос и запускающего его на выполнение ..
ВладиславМинск (2009-05-28 16:04:00) [34]
> Ну значит нет в таблице записей, в которых nom_sem=1 и nom_var=56
Самое досадное, что есть.. =((
Сергей М. , можно ли с Вами как-нибудь связаться по-другому? Ну ICQ например или как-нибудь еще?.. Очень нужна помощь именно сегодня..
Сергей М. (2009-05-28 15:58:00) [35]Ну значит нет в таблице записей, в которых nom_sem=1 и nom_var=56
ВладиславМинск (2009-05-28 15:52:00) [36]
> свой личный номер (состоящий из 6 цифр) две последние цифры
Прошу прощения.. Забыл уточнить, что условие немного поменял.. требуется ввести только номер варианта, а не номер студента..
Сергей М. (2009-05-28 15:46:00) [37]
> вводит номер семестра
Т.е., к примеру, a=1
> вводит .. свой личный номер (состоящий из 6 цифр) две последние цифры
> указывают на его номер в журнале и соответственно на его
> вариант
Т.е. с учетом
> b - введенные юзером значение в Edit
твой запрос выглядит так
SELECT name_pred, zadanie FROM zaokr where nom_sem=1 and nom_var= 123456
А в таблице нет ни единой записи, у которой в поле nom_var имеется значение 123456, потому что номер варианта не превышает 99, ибо
> две последние цифры указывают на .. вариант
ВладиславМинск (2009-05-28 15:30:00) [38]
> "именно так" - это как ?
SELECT name_pred, zadanie FROM zaokr where nom_sem=a and nom_var=b
где а, и b - введенные юзером значение в Edit'ы
> А остальные поля ? Догадаться с трёх раз предлагаешь об
> их типе ?)
name_pred - текстовы
nom_var - числовой
nom_sem - числовой
zadanie - Memo
Сергей М. (2009-05-28 15:25:00) [39]
> Сделал в ADOQuery именно так
"именно так" - это как ?
> Нзвание_предмета в базе - текстовое
> Задание - поле Мемо
А остальные поля ? Догадаться с трёх раз предлагаешь об их типе ?)
ВладиславМинск (2009-05-28 15:18:00) [40]
> Куда уж проще:
>
> select [Название_предмета],[Задание]
> from [Таблица]
> where [Семестр]=такой_то_семестр and [Номер_варианта]=такой_то_вариант
Сделал в ADOQuery именно так.. но в DBGrid выводит только название полей а саму информацию не выводит.. что я делаю не так, подскажите пожалуйста..
Нзвание_предмета в базе - текстовое
Задание - поле Мемо
Искал в справке Аксеса нечто подобное, но чтото ничего нового не нашел..
П.С.
Извините-уж что я такой нуб и такие "тупые" вопросы задаю.. но помогите пожалуйста..