Вопрос № 52161: Добрый день, уважаемые эксперты!
Возник вопрос, прошу помощи. Суть такова: (VB6, Access97) . Имеются две главные таблицы: "Abiturient" и "Abiturient_V"
При проведении приема документов данные абитуриентов заносятся в табл...Вопрос № 52189: Здравствуйте, уважаемые эксперты!
Я делаю в Microsoft Visual Basic .NET Com-оюъект и у меня возникла проблема: нужно как-нибудь включить в проект .ico -файл, т.е. этот файл должен храниться в самой библиотеке, а при регистрации компонента (или пр...
Вопрос № 52.161
Добрый день, уважаемые эксперты!
Возник вопрос, прошу помощи. Суть такова: (VB6, Access97) . Имеются две главные таблицы: "Abiturient" и "Abiturient_V"
При проведении приема документов данные абитуриентов заносятся в табл. "Abiturient" . После вступительных экзаменов, данные абитуриентов, не прошедших испытаний удаляют во вторую табл. "Abiturient_V", где они хранятся в течении 5 лет.
Надо построить SQL-запрос и вывести количество записей в двух этих таблицах (т.е. сколько всего было подано заявлений), примерно так:
[code=vb]
SELECT Count(Abiturient.GlavID) AS Count_G
FROM Abiturient
UNION
SELECT Count(Abiturient_V.GlavID) AS Count_V
FROM Abiturient_V
[/code]
Выводится:
Count_G=некоторое число
Count_V=некоторое число
Но надо найти общее число одним запросом
Может создать временную таблицу с данными двух таблиц и потом находить уже общее число? Только как?
И еще: выше указанный запрос работает в Access'е , а в программе нет
Подскажите путь решения данной проблемы,
Всего доброго.
Отвечает: Александр Шевченко
Здравствуйте, Робатько Анатолий Васильевич!
1. select count(abit.id) from (select id from abiturient union select id from abiturient_v) as abit
2. Как именно в программе не работает? Ошибку выдает? Какую?
--------- Вместо внутренней почты лучше стучитесь в аську - 299739804
Ответ отправил: Александр Шевченко (статус: Студент)
Ответ отправлен: 15.08.2006, 10:31
Отвечает: Кокорич Вадим Леонидович
Здравствуйте, Робатько Анатолий Васильевич!
Если в VB 6.0 не работают запросы, а в Access-97 работают - проверьте, не используете ли Вы ADO вместо DAO, возможно, ошибка кроется в этом. Все записи об абитуриентах я бы хранил в одной таблице, из которой записи о неудачниках удалялись бы после определенной даты - Александр Шевченко дал ответ, как их сортировать. Только я бы еще ввел поле - счетчик, чтобы всегда иметь возможность просмотреть общее количество записей.
--------- Труд сделал обезьяну человеком, а лень человека - программистом !
Ответ отправил: Кокорич Вадим Леонидович (статус: 4-ый класс)
Ответ отправлен: 17.08.2006, 09:55 Оценка за ответ: 3 Комментарий оценки: "SELECT Count(GlavID) AS Count_GlavID From " & _ " (SELECT GlavID From Abituriant " & _ "Union " & _ " SELECT GlavID From AbiturientV ) " Вот правильный ответ на мой вопрос. Благодарю за внимание.
Отвечает: Залетин Виталий Викторович (мь!тарь)
Здравствуйте, Робатько Анатолий Васильевич!
Попробуйте вот так:
Select COUNT(a.GlavId) AS COUNT_G, COUNT(ag.GlavId) AS COUNT_V
FROM abiturient a, abiturient_v ag
В идеале у Вас будет 2 столбца и одна строка.
Или так:
Select COUNT(a.GlavId) + COUNT(ag.GlavId) AS VSE
FROM abiturient a, abiturient_v ag
Тут получится 1 строка и один столбец с общей суммой.
--------- Учиться никогда не поздно. Особенно программированию!
Ответ отправил: Залетин Виталий Викторович (мь!тарь) (статус: Студент)
Ответ отправлен: 19.08.2006, 17:39 Оценка за ответ: 5 Комментарий оценки: Благодарю Виталий Викторович! Не первый раз Вы выручали. Всего доброг!
Вопрос № 52.189
Здравствуйте, уважаемые эксперты!
Я делаю в Microsoft Visual Basic .NET Com-оюъект и у меня возникла проблема: нужно как-нибудь включить в проект .ico -файл, т.е. этот файл должен храниться в самой библиотеке, а при регистрации компонента (или при компиляции???)"появляться" в той же директории, что и dll файл.
Отправлен: 15.08.2006, 12:20
Вопрос задал: __Max (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Залетин Виталий Викторович (мь!тарь)
Здравствуйте, __Max!
Ничего у Вас не выйдет штатными средствами. Регистрация происходит выполнением зашитой в библиотеку функции DllRegisterServer. Чтобы проделать вот такое, Вам надо на VC++ писать эту библиотеку и непосредственно в коде указанной функции выполнить все то, чего хотите. В бейсике сомнительно, чтобы такое вышло. А иконку по-любому надо в файл ресурсов пихать.
Но можно и по-другому: в Sub New()/Class_Initialize просто достать эту иконку из ресрсов и записать куда надо.
--------- Учиться никогда не поздно. Особенно программированию!