Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
28.11.2013, 14:46
|
|||
---|---|---|---|
|
|||
Пользовательская функция в Excell 2010 - запрос к базе данных *.DBF |
|||
#18+
Уважаемые коллеги!!! Прошу прощения, за чайниковский вопрос но возможно ли написать пользовательскую функцию для Excell 2010 на основе ADODB, чтобы делался запрос к файлу базы данных DBF? Я написал и долго пользовался подобной функцией на основе класса BPDBF в Excell 2003, но при переходе на 2010 этот класс перестал работать. :-( Может быть у кого-то есть ссылки на учебники по ADODB, примеры, собственные наработки? Задача проста- в функции задается аргумент А, этот аргумент ищется в файле базы данных DBF в определенном поле -Поле1. Из Поля2 записи содержащей аргумент А в Поле1 результат выдается в ячейку. Начал писать но не могу отладить и нет понимания. Если нужно могу выложить функцию на основе класса BPDBF, но думаю здесь аналогии неуместны. Заранее всем спасибо! Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
Модератор: Учимся использовать тэги оформления кода - FAQ ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.11.2013, 15:49
|
|||
---|---|---|---|
Пользовательская функция в Excell 2010 - запрос к базе данных *.DBF |
|||
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.11.2013, 16:03
|
|||
---|---|---|---|
|
|||
Пользовательская функция в Excell 2010 - запрос к базе данных *.DBF |
|||
#18+
F вам ответил, а у меня встречные вопросы Сергей ВВС Код: vbnet 1. 2. 3.
разве в таблице COUNTRS у вас нет идентификаторов, соответствующих N? и как вы можете быть уверены, что страны вернутся в определенном порядке, если не используете ORDER BY? и зачем вам звездочка в запросе, если используете только четвертое поле? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.11.2013, 16:07
|
|||
---|---|---|---|
|
|||
Пользовательская функция в Excell 2010 - запрос к базе данных *.DBF |
|||
#18+
в общем так как-то должно быть, иначе получается, что вы перекачиваете на клиенты ВСЮ таблицу со ВСЕМИ странами каждый раз, когда вызываете функцию, хотя вам нужно только ИМЯ столько ОДНОЙ страны Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.11.2013, 16:44
|
|||
---|---|---|---|
|
|||
Пользовательская функция в Excell 2010 - запрос к базе данных *.DBF |
|||
#18+
Shocker.Pro, большое САСИБО за ответ, попробую. Только у меня маленький вопрос - CountryName это имя поля в базе? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.11.2013, 17:15
|
|||
---|---|---|---|
|
|||
Пользовательская функция в Excell 2010 - запрос к базе данных *.DBF |
|||
#18+
Вмеcто CountryName и ID подставьте реальные названия полей ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.11.2013, 20:24
|
|||
---|---|---|---|
|
|||
Пользовательская функция в Excell 2010 - запрос к базе данных *.DBF |
|||
#18+
Shocker.Pro, подставил, попробовал, что-то не работает Function ÑÒÐÀÍÀ(N) As String Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long ' connect to the Access database FirstRowHasNames = 1 Set cn = New ADODB.Connection cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=G:\ADODB\;Extended Properties=""DBASE IV;"";" ds = cn.Execute("SELECT NAME17 FROM COUNTRS.dbf WHERE ALFA2=" & CStr(N)) ÑÒÐÀÍÀ = rs.Fields(1) rs.Close cn.Close End Function ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.11.2013, 20:25
|
|||
---|---|---|---|
|
|||
Пользовательская функция в Excell 2010 - запрос к базе данных *.DBF |
|||
#18+
Со строкой подключения разобрался? ЗЫ: и для кого я ссылку на FAQ давал? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.11.2013, 21:03
|
|||
---|---|---|---|
|
|||
Пользовательская функция в Excell 2010 - запрос к базе данных *.DBF |
|||
#18+
Shocker.Pro, честно - нет, чувствую себя полным идиотом. Может мне лучше книгу какую почитать для начала? Даже неудобно. Прошу прощения за теги.(вернее за неуменее ими пользоваться) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.11.2013, 01:39
|
|||
---|---|---|---|
|
|||
Пользовательская функция в Excell 2010 - запрос к базе данных *.DBF |
|||
#18+
возможно стоит почитать но ведь код уже готовый есть, осталось правильно написать строку подключения ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.12.2013, 22:57
|
|||
---|---|---|---|
|
|||
Пользовательская функция в Excell 2010 - запрос к базе данных *.DBF |
|||
#18+
Shocker.Pro, попробовал. Строка подключения вроде бы работает, но ругается на строку запроса. Что не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.12.2013, 00:37
|
|||
---|---|---|---|
|
|||
Пользовательская функция в Excell 2010 - запрос к базе данных *.DBF |
|||
#18+
Вы-то сами в состоянии разобрать, что написано на скриншоте? Я не вижу ни текста запроса, ни текста ошибки. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.12.2013, 12:52
|
|||
---|---|---|---|
Пользовательская функция в Excell 2010 - запрос к базе данных *.DBF |
|||
#18+
Ошибка в синтаксисе, написано же. Пропущен оператор. У Вас в CStr(N) что? Может одинарные кавычки не помешали бы(если это не число)? Код: vbnet 1.
а так соглашусь с Shocker.Pro полностью - ничего из скрина не видать толком. Ни строку запроса, ни номер ошибки. P.S. По SQL запросам можете почитать книгу Мартина Грубера "Понимание SQL". Она простенькая и для начинающих самое оно. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
30.12.2013, 15:40
|
|||
---|---|---|---|
|
|||
Пользовательская функция в Excell 2010 - запрос к базе данных *.DBF |
|||
#18+
The_Prist, Здравствуйте, я попробовал упростить задачу до максимума, но вс равно результата нет функция возвращает в ячейку #ЗНАЧ! Упрощения: ............WHERE code=40") т.е. в функции аргумент N не используется. Поля в исходном файле COUNTRS.dbf CODE - Двойное с плавающей точкой, все остальные - текст Что не так? Debug - ничего не дает, и функция не работает. :-( Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
За книжку Грубера - БОЛЬШОЕ СПАСИБО!! Действительно простая и полезная. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
30.12.2013, 18:27
|
|||
---|---|---|---|
Пользовательская функция в Excell 2010 - запрос к базе данных *.DBF |
|||
#18+
Сергей ВВС, ну поменяйте вы провайдера-то уже (на VFPOLEDB)... А так... Что значит "дебаг ничего не даёт"? Остановите выполнение после запроса и посмотрите, где и что лежит в переменных и рекордсете. Подозреваю, что у вас запрос возвращает пустую выборку... А, не, не подозреваю Покажите мне код, в котором написано, что данные появляются в rs ... |
|||
:
Нравится:
Не нравится:
|
|||
|
30.12.2013, 18:33
|
|||
---|---|---|---|
|
|||
Пользовательская функция в Excell 2010 - запрос к базе данных *.DBF |
|||
#18+
Сергей ВВС, Если вам дали совет, это не значит, что нужно его использовать, не вникая в суть. Советчик сделал опечатку, вы тупо повторяете его ошибку. читайте тут ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.12.2013, 12:58
|
|||
---|---|---|---|
|
|||
Пользовательская функция в Excell 2010 - запрос к базе данных *.DBF |
|||
#18+
Shocker.Pro, Спасибо за совет на счет Option Explicit. Но все равно не работает. И ошибок Debug не выдает. Что еще почитать? Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.12.2013, 13:42
|
|||
---|---|---|---|
|
|||
Пользовательская функция в Excell 2010 - запрос к базе данных *.DBF |
|||
#18+
Сергей ВВСНо все равно не работаетЧто означает "не работает"? функция либо должна вернуть какое-то значение, либо сгенерить ошибку. Третьего не дано. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.12.2013, 15:40
|
|||
---|---|---|---|
|
|||
Пользовательская функция в Excell 2010 - запрос к базе данных *.DBF |
|||
#18+
Shocker.Pro, возвращает #ЗНАЧ! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.12.2013, 15:47
|
|||
---|---|---|---|
|
|||
Пользовательская функция в Excell 2010 - запрос к базе данных *.DBF |
|||
#18+
Сергей ВВСShocker.Pro, возвращает #ЗНАЧ!Попробуйте изменить запрос на Код: vbnet 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.12.2013, 16:21
|
|||
---|---|---|---|
|
|||
Пользовательская функция в Excell 2010 - запрос к базе данных *.DBF |
|||
#18+
Сергей ВВСShocker.Pro, возвращает #ЗНАЧ!а если ее выполнить в окне Immediate? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.12.2013, 16:54
|
|||
---|---|---|---|
|
|||
Пользовательская функция в Excell 2010 - запрос к базе данных *.DBF |
|||
#18+
Shocker.Pro, Compile error: Invalid in Immediate pane ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.12.2013, 18:26
|
|||
---|---|---|---|
Пользовательская функция в Excell 2010 - запрос к базе данных *.DBF |
|||
#18+
Сергей ВВСCompile error: Invalid in Immediate paneНе, ну достанешь же. Мёртвого. Как Гришу Перельмана - нобелёвский комитет. Если потерял нитку темы - так признайся, что перестал понимать. И не надо долбить свой код - он от тыкания копипаста не улучшится... (поскольку фэйспалма не предусмотрено) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.12.2013, 19:12
|
|||
---|---|---|---|
|
|||
Пользовательская функция в Excell 2010 - запрос к базе данных *.DBF |
|||
#18+
AndreTM, Мертвый? Не пиши сюда. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.12.2013, 19:58
|
|||
---|---|---|---|
|
|||
Пользовательская функция в Excell 2010 - запрос к базе данных *.DBF |
|||
#18+
Сергей ВВСCompile error: Invalid in Immediate paneЧто именно ты там пишешь? Надо написать знак вопроса, имя функции, в скобках значение параметра и нажать Enter ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=61&mobile=1&tid=2173790]: |
0ms |
get settings: |
11ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
25ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 291ms |
total: | 411ms |
0 / 0 |