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

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


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

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

Выпуск № 501
от 08.04.2007, 14:05

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


Вопрос № 80743: Здравствуйте! Мне нужно получить иконку, которая сопоставлена с определенным типом файлов. То есть, допустим, вводим "bmp", а мне возвращается иконка, которая зарегистрирована у меня в системе под таким расширением. Как такое мо...
Вопрос № 80786: Здравствуйте уважаемые эксперты, на этот раз меня интересует поиск и сортировки. Пишу ИС для Access(связь с таблицей "DataBoundGrid" через "data"), допустим там 2 столбца, один тип текстовый а второй числовой, требуются сортировки...
Вопрос № 80831: Здравствуйте, жду с нетерпением помощи. У меня такая ситуация: Хочу через InputBox ввести в последовательность ячеек значения. Можно ли это как то организовать в цикле. Ячейкам присвоены имена Klas1; Klas2 ... Klas72. По типу такого For A = ...
Вопрос № 80843: К вопросу № 80694. Может я неправильно выразился. Но есть таблица и формы, надо в Access 2003 построить в график при нажатии на кнопку (что бы пользователь не делал ничего линего, и что бы график отображался в Форме). Заранее спасибо....

Вопрос № 80.743
Здравствуйте!
Мне нужно получить иконку, которая сопоставлена с определенным типом файлов.
То есть, допустим, вводим "bmp", а мне возвращается иконка, которая зарегистрирована у меня в системе под таким расширением.
Как такое можно реализовать?
P.S. Считывать иконку из конкретного файла не надо.
Отправлен: 02.04.2007, 18:08
Вопрос задал: Red Spirit (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: HookEst
Здравствуйте, Red Spirit!
В приложении для VB6 пример использования для этого функции WindowsAPI SHGetFileInfo:

на форме TextBox Text1(для ввода нужного расширения) и PictureBox Picture1(для вывода связанной иконки).
при изменении значения Text1(например на "bmp" или "txt"), в Picture1 рисуется иконка связанная с расширением равным значению Text1
(см. Text1_Change и примечания)

Если что, пишите.
Успехов.

Приложение:

Ответ отправил: HookEst (статус: Студент)
Ответ отправлен: 03.04.2007, 06:46
Оценка за ответ: 5
Комментарий оценки:
Хм.. интересная идея, и как я сам не догадался =)

Отвечает: Alec Perle
Здравствуйте, Red Spirit!
Если считывать иконку из файла не надо, то, как я понял, нужно узнать, в каком файле хранится иконка, ассоциированная с конкретным типом файла.
Ассоциации файлов по их расширению хранятся в ключах реестра
HKEY_CLASSES_ROOT, например для файлов *.mp3 у ключа реестра
HKEY_CLASSES_ROOT.mp3 значение по умолчанию равно "Winamp.File", а в ключе реестра
HKEY_CLASSES_ROOTWinamp.File заданы описания данного типа файлов, выполняемые с ними команды, в частности значение ключа
HKEY_CLASSES_ROOTWinamp.FileDefaultIcon равно "C:Program FilesWinampwinamp.exe,4"
(это в моих настройках, у Вас программа и местонахождение иконки может быть другим).
Поэтому алгоритм определения местонахождения ассоциированной иконки такой:
1. Ищем ключ реестра по расширению и определяем тип файла
2. Ищем ключ реестра по типу файла и определяем местонахождение иконки.
В VB/VBA возможность работы с произвольными ключами реестра осуществимо с использованием функции WinAPI, правда использовать необходимо только два. См. примерный код в приложении.

Приложение:

---------
Пессимист - это хорошо информированный оптимист (а оптимист - хорошо проинструктированный пессимист)

Ответ отправил: Alec Perle (статус: 6-ой класс)
Ответ отправлен: 03.04.2007, 19:46
Оценка за ответ: 5


Вопрос № 80.786
Здравствуйте уважаемые эксперты, на этот раз меня интересует поиск и сортировки. Пишу ИС для Access(связь с таблицей "DataBoundGrid" через "data"), допустим там 2 столбца, один тип текстовый а второй числовой, требуются сортировки по возрастанию и по убыванию для текста и для чисел.Если кто писал прошу поделиться кодом.
И еще нужен пример хорошего поиска(желательно чтоб искал не по полному названию, допустим я ввожу букву "а" и в таблице выводятся слова только на "а". Буду благодарен любому примеру поиска и сортировок!
Отправлен: 02.04.2007, 22:49
Вопрос задал: Чалагаев И.Г (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Тесленко Евгений Алексеевич
Здравствуйте, Чалагаев И.Г!
Если Вы в Access используете контрол 'Data', то сортировать вам придется рекордсет, примерно так:
... rst.Sort = FildName & " ASC, Fld2 DESK"...
"...и в таблице выводятся слова только ..." это можно отнести к фильтру таблицы, а поиск лучше производить в запросе с условием отбора:
"...WHERE Field Like 'А' & '*'..."
Удачи.
Евгений.
Ответ отправил: Тесленко Евгений Алексеевич (статус: 6-ой класс)
Ответ отправлен: 02.04.2007, 23:56


Вопрос № 80.831
Здравствуйте, жду с нетерпением помощи. У меня такая ситуация: Хочу через InputBox ввести в последовательность ячеек значения. Можно ли это как то организовать в цикле. Ячейкам присвоены имена Klas1; Klas2 ... Klas72.
По типу такого
For A = 1 to 72
adr = "klas" + str(a)
inputbox (znath)
Range(adr).Value = znath
next a
Отправлен: 03.04.2007, 08:52
Вопрос задал: Андрейчиков Василий Васильевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Genyaa
Здравствуйте, Андрейчиков Василий Васильевич!

см.приложение.

Приложение:

---------
Всякое решение плодит новые проблемы.

Ответ отправил: Genyaa (статус: Студент)
Ответ отправлен: 03.04.2007, 11:27


Вопрос № 80.843
К вопросу № 80694. Может я неправильно выразился. Но есть таблица и формы, надо в Access 2003 построить в график при нажатии на кнопку (что бы пользователь не делал ничего линего, и что бы график отображался в Форме).

Заранее спасибо.
Отправлен: 03.04.2007, 10:21
Вопрос задал: Вячеслав Игоревич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: HookEst
Здравствуйте, Вячеслав Игоревич!
С использованием Excel.Chart это может выглядеть примерно так:
на форму ложим "свободную рамку объекта", внедряем в нее Excel.Chart, настраиваем его внешний вид и т.п.
а сами данные:

Private Sub Кнопка1_Click()
'здесь нужен Reference на Microsoft Excel Object Library
Dim ws As Excel.Worksheet
Dim ch As Excel.Chart
Dim count As Long

Set ch = ole.Object.Sheets(1)
Set ws = ole.Object.Sheets(2)
'где ole - это имя "рамки" с графиком
'теперь ch - это Chart object
'а ws - Worksheet с ним связанный
'можно пользоваться как обычно в Excel

'копируем данные из таблицы "Таблица1"(может быть любой рекордсет, у меня таблица с двумя полями x и y) на ws
count = ws.Range("A2").CopyFromRecordset(CurrentDb.OpenRecordset("Таблица1"))

'и переустанавливаем область данных
ch.SetSourceData ws.Range("B1:B" & count), xlColumns

End Sub

Конечно, это только макет, наверняка придется еще настраивать график(оси, ряды и т.д.), обработать ошибки, может освободить переменные.

Успехов.
Ответ отправил: HookEst (статус: Студент)
Ответ отправлен: 03.04.2007, 11:50
Оценка за ответ: 5


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.47 от 06.04.2007
Яндекс Rambler's Top100

В избранное