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

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


Информационный Канал Subscribe.Ru

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

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

Выпуск № 201
от 17.01.2006, 12:03

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


Вопрос № 33045: Добрый день всем! Я задавал вопрос №32955 и получил по почте ответ от Виталия: Dim sCell As String Dim lMark1 As Long Dim lMark2 As Long sCell = Range("A1").Value lMark1 = InStr(1, sCell, " ") Range("B...
Вопрос № 33059: Здравствуйте, уважаемые эксперты! Никак не могу разобраться с проблемой: 1) В программе создается значение переменной 1. Открывается база данных, в ней выбирается таблица, например ABC. В ней два столбца. В первом столбце необходимо ...

Вопрос № 33.045
Добрый день всем! Я задавал вопрос №32955 и получил по почте ответ от Виталия:
Dim sCell As String
Dim lMark1 As Long
Dim lMark2 As Long
sCell = Range("A1").Value
lMark1 = InStr(1, sCell, " ")
Range("B1").Value = Left(sCell, lMark1 - 1)
lMark1 = InStr(1, sCell, "/")
Range("D1").Value = Mid(sCell, lMark1 + 1)
lMark2 = InStrRev(sCell, " ", lMark1)
Range("C1").Value = Mid(sCell, lMark2 + 1, lMark1 - lMark2 - 1)
При тестировании выдает ERROR :"Ошибка компиляции. Процедура Sub или Function не определена и указывает на "InStrRev" в предпоследней строке. Я заремил предпоследнюю и последнюю строки, то получил в ячейках "B1" и "D1" правильные ответы. Будьте любезны, посмотрите с ячейкий "C1". С уважением Анатолий .

Отправлен: 11.01.2006, 13:46
Вопрос задал: Робатько Анатолий Васильевич (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: _Виталий
Здравствуйте, Робатько Анатолий Васильевич!
Если в марке двигателей, где идут буквы (ЧРПН и т.п.) не бывает пробелов типа "12 ЧРП Н 45,5/65,2", то вот новый код:
-----------------------------------
Dim sCell As String
Dim lMark1 As Long
Dim lMark2 As Long
sCell = Range("A1").Value
lMark1 = InStr(1, sCell, " ")
Range("B1").Value = Left(sCell, lMark1 - 1)
lMark2 = InStr(1, sCell, "/")
Range("D1").Value = Mid(sCell, lMark2 + 1)
lMark1 = InStr(lMark1 + 1, sCell, " ")
Range("C1").Value = Mid(sCell, lMark1 + 1, lMark2 - lMark1 - 1)
--------------------------------
Видимо функция InStrRev работает только в VB6 ;-)
Ответ отправил: _Виталий (статус: 10-ый класс)
Отправлен: 11.01.2006, 22:55
Оценка за ответ: 5
Комментарий оценки:
Виталий, все нормально! Благодарю!

Отвечает: Залетин Виталий Викторович
Здравствуйте, Робатько Анатолий Васильевич!
InStrRev нету такой функции встроенной. StrReverse есть.
---------
Учиться никогда не поздно. Особенно программированию!
Ответ отправил: Залетин Виталий Викторович (статус: Студент)
Отправлен: 14.01.2006, 13:23


Вопрос № 33.059
Здравствуйте, уважаемые эксперты!
Никак не могу разобраться с проблемой:

1) В программе создается значение переменной 1.
Открывается база данных, в ней выбирается таблица, например ABC. В ней два столбца. В первом столбце необходимо найти строчку со значением переменной 1 и записать в переменную 2 значение второго столбца в данной строке. Как это реализовать?

2) Сделал запрос, выводящий значение второго столбца по значению из первого. Как выполнить запрос из VB и получить значение второго столбца?

Извините, что так запутанно...

3 ) Может кто-нибудь даст еще ссылочку на ресурсы по DAO?
Отправлен: 11.01.2006, 17:26
Вопрос задал: Черных Василий (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Залетин Виталий Викторович
Здравствуйте, Черных Василий!
Зачем Вам DAO? Используйте ADO! Там намного проще и без лишней головомотины! Плюс к тому, даже Майкрософт его отказалась поддерживвать. ADO, батенька, да итолько, а еще SQL-запросы.

1,2. Выполняете запрос к базе, в котором в параметре передаете нужное значение:
Set RecordsetObject=ConnectionObject.EXECUTE("Select Stolbets1, Stolbets2 From ABC Where Stolbets1='" & Peremennaya1 & "'")
Потом из RecordsetObject выбираете из второго поля значение (из столбца Stolbets2) и присваиваете его переменной:
Peremennaya2=RecordsetObject.Fields("Stolbets2").Value

3. ADO (.NET) и только!
---------
Учиться никогда не поздно. Особенно программированию!
Ответ отправил: Залетин Виталий Викторович (статус: Студент)
Отправлен: 14.01.2006, 13:17
Оценка за ответ: 5


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

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

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

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

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


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


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

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.basicvba
Архив рассылки
Отписаться Вебом Почтой
Вспомнить пароль

В избранное