Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Basic / VBA


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Basic/VBA

Выпуск № 351
от 20.08.2006, 16:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 190, Экспертов: 28
В номере:Вопросов: 2, Ответов: 4


Вопрос № 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'е , а в программе нет
Подскажите путь решения данной проблемы,
Всего доброго.

Отправлен: 15.08.2006, 09:18
Вопрос задал: Робатько Анатолий Васильевич (статус: 1-ый класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Александр Шевченко
Здравствуйте, Робатько Анатолий Васильевич!
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 просто достать эту иконку из ресрсов и записать куда надо.
---------
Учиться никогда не поздно. Особенно программированию!
Ответ отправил: Залетин Виталий Викторович (мь!тарь) (статус: Студент)
Ответ отправлен: 19.08.2006, 17:20


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.35 от 27.07.2006
Яндекс Rambler's Top100

В избранное