Вопрос № 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". С уважением Анатолий .
Отвечает: _Виталий
Здравствуйте, Робатько Анатолий Васильевич!
Если в марке двигателей, где идут буквы (ЧРПН и т.п.) не бывает пробелов типа "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 есть.
--------- Учиться никогда не поздно. Особенно программированию!
Здравствуйте, уважаемые эксперты!
Никак не могу разобраться с проблемой:
1) В программе создается значение переменной 1.
Открывается база данных, в ней выбирается таблица, например ABC. В ней два столбца. В первом столбце необходимо найти строчку со значением переменной 1 и записать в переменную 2 значение второго столбца в данной строке. Как это реализовать?
2) Сделал запрос, выводящий значение второго столбца по значению из первого. Как выполнить запрос из VB и получить значение второго столбца?
Извините, что так запутанно...
3 ) Может кто-нибудь даст еще ссылочку на ресурсы по DAO?
Отвечает: Залетин Виталий Викторович
Здравствуйте, Черных Василий!
Зачем Вам 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