|
Excel + VBA 2013
|
|||
---|---|---|---|
#18+
Всем привет, сегодня столкнулся с такой проблемой: Нужно запрограммировать автоматический поиск нужных значений из базы данных, но VBA не понимает переменные для нее. Ввожу Dim База As DataBase, n As Recordset - а он выдает, мол, неизвестный тип переменных. Где-то в настройках можно "подцепить" расширение для Access, но как это сделать я не знаю, может кто подсказать? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2014, 09:41 |
|
Excel + VBA 2013
|
|||
---|---|---|---|
#18+
Tools - References - MS ActiveX Database Objects ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2014, 10:14 |
|
Excel + VBA 2013
|
|||
---|---|---|---|
#18+
Хотя, стоп, если DataBase и Recordset, то надо подключать не ADO, а DAO, хотя лучше, конечно, освоить ADO ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2014, 10:15 |
|
Excel + VBA 2013
|
|||
---|---|---|---|
#18+
все равно не получается: пишет, что какой-то конфликт возник ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2014, 10:29 |
|
Excel + VBA 2013
|
|||
---|---|---|---|
#18+
Егор Терехов, думаю надо подключать Microsoft DAO 3.6 Tools -> References -> Microsoft DAO 3.6 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2014, 10:29 |
|
Excel + VBA 2013
|
|||
---|---|---|---|
#18+
Спасибо - помогло и переменные заработали. Только теперь другая проблема, при я написал вот что для поиска: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Модератор: Учимся использовать тэги оформления кода - FAQ Выдает ошибку, что база по адресу C:/Ograd.mdb не найдена, хотя она именно там и находится. Можете с этим помочь? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2014, 10:35 |
|
Excel + VBA 2013
|
|||
---|---|---|---|
#18+
Ой, кто ж вас так учил... перебирать все записи-то Во-первых, если уж на то пошло, у рекордсета есть метод Find или что-то в этом роде. Во-вторых, не надо пользоваться и Find - вы перекладываете на свою программу работу ядра БД, и главное - никак не используете индексы. Ваш код будет работать на несколько порядков медленнее, чем что-то типа Код: vbnet 1.
Что касается "не найден" - так таки не найден, проверяйте путь, права доступа, слеш в правильную сторону стоит? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2014, 10:42 |
|
Excel + VBA 2013
|
|||
---|---|---|---|
#18+
а поймет ли так программа, что в соответствии первому столбику нужно присвоить значения трем переменным из трех других столбиков таблицы? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2014, 10:57 |
|
Excel + VBA 2013
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
единственное, могу ошибаться в правильности синтаксиса в данном случае для OpenRecordset, давно не работал с DAO, но примерно так ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2014, 11:06 |
|
Excel + VBA 2013
|
|||
---|---|---|---|
#18+
ну не открывает он базу данных и все тут. Может возможно сделать так, чтобы он искал значения из таблицы в соседнем листе? Алгоритм такой Есть название, которое вводим вручную - программа ищет такое название в таблице и выписывает три параметра из соседних столбиков, соответствующих этому названию. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2014, 14:09 |
|
Excel + VBA 2013
|
|||
---|---|---|---|
#18+
ну тут вообще можно обойтись формулами ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2014, 14:16 |
|
Excel + VBA 2013
|
|||
---|---|---|---|
#18+
Объясните, пожалуйста, такую проблему (на рисунке): я чего-то не понимаю или это реально мистика ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2014, 14:25 |
|
Excel + VBA 2013
|
|||
---|---|---|---|
#18+
в первой строке переменной a присваивается результат побитового умножения выражений (a / 2) и (i = 2) первое равно 2700 второе не знаю чему равно, так как вы не сказали, чему равно i, но в итоге получился 0 во второй строке соответственно "а" уже равно 0 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2014, 14:35 |
|
Excel + VBA 2013
|
|||
---|---|---|---|
#18+
Shocker.Proвторое не знаю чему равновторое очевидно равно False, так как при True был бы другой конечный результат, то есть i не равно 2 в этом месте. False это 0. При побитовом умножении на 0, результат тоже получается 0 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2014, 14:36 |
|
Excel + VBA 2013
|
|||
---|---|---|---|
#18+
честно говоря, ничего не понял, i - это просто переменная, обозначенная как integer ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2014, 14:40 |
|
Excel + VBA 2013
|
|||
---|---|---|---|
#18+
выражение (i = 2) ложное, то есть False False, по сути это Integer-тип равный нулю ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2014, 14:42 |
|
Excel + VBA 2013
|
|||
---|---|---|---|
#18+
перепишу вот так со скобками, чтобы были понятны приоритеты и преобразования типов Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2014, 14:43 |
|
Excel + VBA 2013
|
|||
---|---|---|---|
#18+
Вот хоть убейте, а = 0, даже пробовал дополнительную переменную вводить - все одно ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2014, 14:46 |
|
Excel + VBA 2013
|
|||
---|---|---|---|
#18+
Так что не так-то? я же объяснил, почему а=0 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2014, 14:58 |
|
Excel + VBA 2013
|
|||
---|---|---|---|
#18+
как сделать так, чтобы условие выполнялось и при этом все работало? Написно-то правильно, всегда так писал в 2010-м экселе - проблем не было. А тут какая-то непонятка ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2014, 15:05 |
|
Excel + VBA 2013
|
|||
---|---|---|---|
#18+
Если бы знать, что и как должно работать, можно было бы что-то посоветовать. Вы привели код и попросили объяснить, как он работает. А вот как он ДОЛЖЕН по вашей задумке работать, не сказали ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2014, 15:06 |
|
Excel + VBA 2013
|
|||
---|---|---|---|
#18+
а, мне кажется, я догадался: Код: vbnet 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2014, 15:08 |
|
Excel + VBA 2013
|
|||
---|---|---|---|
#18+
ну или в вашем случае Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2014, 15:09 |
|
Excel + VBA 2013
|
|||
---|---|---|---|
#18+
Спасибо, заработало, теперь все правильно считает! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2014, 15:15 |
|
Excel + VBA 2013
|
|||
---|---|---|---|
#18+
сейчас завис на таком этапе: Мы в ячейку 4,3 вводим название ограды, у каждого типа ограды есть три своих параметра: ширина опорных столбиков, количество поясов и размер трубы. Нужно, чтобы программа сама искала по названию соответствующие параметры в таблице. Таблица приведена на втором листе. Понятно, что переменной присваиваем значение "tip as String" и что задаем алгоритм поиска типа do while tip = "Столбец 1" тогда x="столбец 2" и y = "Столбец 3" и z = "Столбец 4" но сделать это все так, чтобы работало, у меня не получается - Я попросту не знаю, как грамотно это все написать. Еще такая проблема: В ячейке 5,3 мы вводим тип калитки. Переменную я сделал тоже "string" и сказал ей реагировать только назначения "левая" или "правая". В зависимости от этого и еще одного фактора программа должна вставлять заранее заготовленный рисунок прямо на рабочий лист. Либо может кто знает как сделать так, чтобы Excel сам рисовал? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2014, 08:42 |
|
|
start [/forum/topic.php?fid=61&msg=38660999&tid=2173988]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 285ms |
total: | 421ms |
0 / 0 |