|
Форма теряет свойства Recordset и RecordsetClone
|
|||
---|---|---|---|
#18+
Форма теряет свойства Recordset и RecordsetClone У меня есть маленькая программка (модуль), которая облегчает подключение таблиц из других баз Access. Всё было хорошо до тех пор пока не пришлось работать с базами, закрытыми паролем. Для демонстрации проблемы я сделал пример: сама база с программой и две базы с таблицами, одна - с паролем, другая - без Программка состоит из 3 форм, 3 запросов, 3 таблиц. 3 модулей. Основная форма - frmSystemBases . При её запуске высвечивается сформированный список баз для подключения. Внизу есть поле "Путь к базе". Для изменения пути справа от поля есть специальная кнопка. Установите пути под Ваше размещение файлов баз. Справа от поля с описанием базы находится чекбокс, который показывает, произведено подключение базы или нет, и две кнопки для подключения и отключения таблиц. После выполнения действий с таблицами вызывается подпрограмма subBookmark которая находится в Module1 . Она обновляет информацию на форме (типа Requery) и устанавливает указатель на ту запись, где он был до этого. Для этого используется свойство формы Recordset . Но как только Вы попробуете подключить запароленные таблицы, то подпрограмма subBookmark вылетает по ошибке Код: plaintext
При просмотре под отладчиком оказывается что форма frmSystemBases теряет свои свойства Recordset и RecordsetClone . Они становятся неопределёнными. Сами таблицы подключаются. Я думаю, что всё дело в подпрограмме подключения таблиц. Подключение таблицы незапероленной базы Код: 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. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44.
Подключение таблицы незапероленной базы Код: 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. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57.
Для подключения запароленных таблиц мне приходится создавать рабочую область и открывать в ней запароленную базу. Возможно здесь что-то и портится. Может кто-то что-то посоветует? ------------------------------------------------------------- А ты вложил уже свой кровный рубль в 50-ти миллиардное состояние Билла Гейтса? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 11:51 |
|
Форма теряет свойства Recordset и RecordsetClone
|
|||
---|---|---|---|
#18+
Jossмне приходится создавать рабочую область Set wRs1 = DBEngine.Workspaces(0) - вы не создаете рабочую область, а получаете ссылку на текущую. wRs1.Close - а вот это явно лишнее для текущей области (и Set wRs1 = Nothing тоже). Возможно здесь и причина. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 13:47 |
|
Форма теряет свойства Recordset и RecordsetClone
|
|||
---|---|---|---|
#18+
Joss, Если без шелухи, то это точно работает: Без пароля: Код: vbnet 1. 2.
С паролем: Код: vbnet 1. 2. 3.
Отличие в том, что с запароленной БД сначала нужно установить связь ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 14:33 |
|
Форма теряет свойства Recordset и RecordsetClone
|
|||
---|---|---|---|
#18+
Кривцов АнатолийJossмне приходится создавать рабочую область Set wRs1 = DBEngine.Workspaces(0) - вы не создаете рабочую область, а получаете ссылку на текущую. wRs1.Close - а вот это явно лишнее для текущей области (и Set wRs1 = Nothing тоже). Возможно здесь и причина. Спасибо. Да Вы правы, это была ссылка на рабочую область и её нельзя было закрывать. Закомментировал две указанные строки и всё заработало. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 14:50 |
|
Форма теряет свойства Recordset и RecordsetClone
|
|||
---|---|---|---|
#18+
vmag, у Вас более понятно, лишний Set убирается. После подключения надо закрыть и очистить объект db . Вопрос, а перед паролем "MS Access;PWD=123" надо писать MS Access или можно опустить? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 14:57 |
|
Форма теряет свойства Recordset и RecordsetClone
|
|||
---|---|---|---|
#18+
Программа моя болеет избыточным кодом. 50% которого можно выбросить без ущерба для функциональности. Например, у меня целых три подпрограммы подключения таблиц. Или даже 4. Без предварительной проверки наличия таблиц, с проверкой наличия таблиц в базе - получателе, чтоб избежать задвоения, с проверкой наличия таблиц в базе-источнике, чтоб не вылетело по ошибке и с проверкой в обоих базах. Плюс ещё есть дополнительная программа, которая выбирает, которую из подпрограмм подключения запустить в зависимости от входных параметров. А теперь появились подпрограммы с обработкой пароля. Можно посидеть и убрать всю "воду" из кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 15:10 |
|
Форма теряет свойства Recordset и RecordsetClone
|
|||
---|---|---|---|
#18+
Слегка поизвращался с интерфейсом для accdb. Саму программу можно скачать здесь если интересно. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2018, 12:10 |
|
Форма теряет свойства Recordset и RecordsetClone
|
|||
---|---|---|---|
#18+
Почему-то не получилось поставить ссылку - исправляюсь http://am.rusimport.ru/MSAccess/topic.aspx?ID=592 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2018, 12:26 |
|
|
start [/forum/topic.php?fid=45&msg=39700435&tid=1611149]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
144ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 242ms |
0 / 0 |