|
Вложения в Access 2007
|
|||
---|---|---|---|
#18+
Есть база книг в Access 2007, фотография обложки каждой книги сохранена в поле «вложение». Мне надо организовать поиск книг по разным параметром, что бы в результате пользователь видел фотографии всех найденных им книг. Проблема в том, что очевидное решение - сформировать запрос и создать на его основе ленточную форму не совсем подходит. Необходимо, что бы все обложки шли не друг под другом, а отображались на одной форме слева направо. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2010, 13:54 |
|
Вложения в Access 2007
|
|||
---|---|---|---|
#18+
Kvasnikov Вы себе все усложняете.Ленточная форма оптимальное решение,но если хотите по другому,то 1.Можно сделать обычную форму на основе Вашего запроса ,отображайте по одной обложке и перемещайтесь по записям стандартными кнопками Вперед и назад. 2.Можно сделать обычную форму на основе Вашего запроса ,положить на неё к примеру три имажда и программировать кнопки вперед и назад для отрисовки следующих обложек 3.Можно на обычную форму навтыкать (программно) кучу контролов ,что бы увидеть ка вы хотите ВСЕ обложки сразу, но если к примеру их будет 100 и более ,то смысл теряется ,картинки то будут маленькие. имхо предпочтительные варианты это ленточная форма и первый пункт ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2010, 14:24 |
|
Вложения в Access 2007
|
|||
---|---|---|---|
#18+
Роман.2.Можно сделать обычную форму на основе Вашего запроса ,положить на неё к примеру три имажда и программировать кнопки вперед и назад для отрисовки следующих обложек Вот у меня как раз с этим загвоздка - я располагаю на форме три объекта "вложение" и они все отображают одну и ту же картинку - не понимаю как им задать отображение разных картинок. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2010, 14:47 |
|
Вложения в Access 2007
|
|||
---|---|---|---|
#18+
Kvasnikov, В базе оптимально хранить пути к картинкам,с сами файлы отдельно. В форме источник данных запрос с полем "путь" ,плюс поле счетник от 1 до N (как в запросе сделать счетчик см фак).На форме три объекта "Рисунок" -все отвязвнные ,на событие "ОбластьДанных_Format" вешаете обработчик где и отрисовываете Ваши обложки по три штуки например Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2010, 16:40 |
|
Вложения в Access 2007
|
|||
---|---|---|---|
#18+
Решил размещать картинки, только не по три, а все сразу, поэтому придется их размещать налету. Первая проблема с которой столкнулся, как мне отчистить форму, то есть удалить все уже имующиеся контролы на ней, что бы заново разместить необходимое количество картинок. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2010, 12:35 |
|
Вложения в Access 2007
|
|||
---|---|---|---|
#18+
Kvasnikov, Не понял проблемы.Что мешает удалить все контролы в конструкторе ? или содать новую чистую форму? Далее создавайте все контролы налету.Ищите по форуму "CreateControl" и смотрите примеры.Вообще это способ достаточно геморойный и не нужный.Представьте что надо будет вывести 200 обложек на одной форме.Вы замучаетесь выставлять размеры и позиции контролов, к тому же картинки будут маленькие и в них не разглядишь рисунок .Какой в этом смысл ? Не идите на поводу у заказчика,предложите ему другой вариант.Ленточная форма и первые два варианта будут работать гораздо быстрее .Представьте что кроме 200 картинок Ван нужно ещё будет вывести Названия ,комментарии и т.д. .Имхо в Вашем случае этот вариант худший. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2010, 13:17 |
|
Вложения в Access 2007
|
|||
---|---|---|---|
#18+
Роман, мне Ваш вариант тоже больше нравится, но надо сделать так, что бы найденные книги были сгруппированы по автору, тематике и т.д., а в ленточной форме это получается очень криво. Я понимаю все сложности создания динамической формы, но в данном случае только она обеспечить наиболее качественный результат. Я знаю как создавать объекты через "CreateControl", проблема в другом - у меня есть готовая пустая форма, я ее открываю, размещаю на ней изображение всех обложек и сохраняю эту форму, что бы пользователю не предлагали сохранить ее при выходе. То есть теперь моя пустая форма превратилась в заполненную форму и перед выводом результатов следующего запроса мне надо удалить на этой форме все существующие объекты - вот как это сделать я не знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2010, 14:30 |
|
Вложения в Access 2007
|
|||
---|---|---|---|
#18+
Kvasnikovно надо сделать так, что бы найденные книги были сгруппированы по автору, тематике и т.д., а в ленточной форме это получается очень криво. Такое очень даже неплохо получается когда на главной форме без источника помещается ленточная форма и элемент ею управляющий - список, комбобокс, другая подформа. В управляющем контроле выбираем группу, которую надо смотреть в ленточной. Ленточная (или табличная) форма фильтруется по выбранной группе. Получается отчетливый интерфейс с хорошо выраженной структурой. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2010, 18:21 |
|
Вложения в Access 2007
|
|||
---|---|---|---|
#18+
автормне надо удалить на этой форме все существующие объекты - вот как это сделать я не знаю Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2010, 19:56 |
|
Вложения в Access 2007
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2010, 19:59 |
|
Вложения в Access 2007
|
|||
---|---|---|---|
#18+
Роман. Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2010, 20:59 |
|
Вложения в Access 2007
|
|||
---|---|---|---|
#18+
Kvasnikov, Добрый день/ вечер, вижу что давно поднимали вопрос по полю с типом вложение, может подскажите способ как можно программно или с помощью SQL его очистить. Запросом на обновление не выполняется (пишет что ...запрос не может включать поле, допускающее одновременно несколько значений.) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2016, 01:54 |
|
Вложения в Access 2007
|
|||
---|---|---|---|
#18+
Djois, Я знаю способ работы с полями для нескольких значений через Recordset2. Соответственно, только через VBA. Ищите по этому ключевому слову ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2016, 18:25 |
|
Вложения в Access 2007
|
|||
---|---|---|---|
#18+
Игортан, спасибо как программно очистить вложение разобрался (более или менее) но нужно это делать массово, отбирать записи по дате и очищать поле с вложениями попытался сделать функцию получилось что-то вроде этого Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
с одной записью справляется хорошо, но когда массово запускаю (в запросе) что-то не клеится, отрабатывает но чистит не всё поковыряюсь ещё, может и разберусь ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2016, 23:02 |
|
Вложения в Access 2007
|
|||
---|---|---|---|
#18+
Djois, Для поля с вложением нужно использовать DAO.Recordset2 не два рекордеста это есть тип рекордсета для работы именно с этими полями не нашел сейчас примера старого.... порезал...перешел на сохранение картинок в папке рядом с бд. что то вы здесь намудрили. Где здесь цикл прохода по записям главного запроса и зачем во вложеном цикле открываете рекордсет заново? Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
На сколько помню и логически правильно: Открываем рекордсет заходим в цикл для прохода строк рекордсета в нем уже открываем рекордсет2 и в рекордсете2 уже в цикле пробегаем по вложениям конец цикла рекордсета2 конец цикла рекордсета ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2016, 01:24 |
|
Вложения в Access 2007
|
|||
---|---|---|---|
#18+
Игортан, ИгортанДля поля с вложением нужно использовать DAO.Recordset2 Спасибо большое, обязательно попробую, я вообще решил что 2 это очепятка :) Игортани зачем во вложеном цикле открываете рекордсет заново? если в вложении больше 1 файла второй и последующий не удалялись без этого, возможно с DAO.Recordset2 такого и не будет. и после программного удаления база чистится не полностью т.е. если я все вложения почищу через VBA- сожму БД? размер будет значительно больше чем если удалить поле с вложением и сжать базу. (Опять же возможно что с DAO.Recordset2 это пройдё) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2016, 00:40 |
|
Вложения в Access 2007
|
|||
---|---|---|---|
#18+
Djois, Сейчас на коленке переписал своим видением кода. Не гарантирую, нужно проверить. В своем первом посте я это и имел ввиду Ну и обработчик ошибок сюда же добаить Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2016, 01:14 |
|
Вложения в Access 2007
|
|||
---|---|---|---|
#18+
Игортан, спасибо нашёл на вражеском ресурсе чистит хорошо, быстро и даже можно выбрать тип файлов которые нужно удалить Код: 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.
Осталась пока одна проблема после удаления всех вложений и последующего сжатия размер БД остаётся большим. т.е. до удаления вложений размер =700 мб после удаления всех вложений и сжатия 250 мб а если пересоздать само поле вложения т.е. в конструкторе таблиц удалить поле FileV (тип - вложение) сохранить таблицу и заново в таблице создать поле FileV (тип - вложение) и после сжать БД размер станет = 850 кб. Отсюда вывод, что не всё очищается ... буду искать дальше :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2016, 20:20 |
|
|
start [/forum/topic.php?fid=45&msg=36542309&tid=1612853]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
172ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 279ms |
0 / 0 |