PDA

Просмотр полной версии : MS Access


VarelikSH
14.07.2006, 20:04
Господа программеры, подскажите пожалуйста решение вопроса, если кто знает
Имеются: база данных в Ассеsse с описанием объектов, и электронный архив - папка в которой в отсортированном порядке (сортировка по ключевому полю главной таблицы Ассеssа -имя папки начинается с ключевого поля таблицы) хранятся фото и чертежи AutoCADa этих объектов.
Требуется: 1 - прямо в базе иметь возможность пролистать фото объекта и
2 - просмотреть чертежи объекта
Может вьювер какой встроить в форму? Чтобы при переходе на следущую запись картинки тож менялись.
Скажите, это вообще возможно?

1
14.07.2006, 21:28
Насколько я понял, полный путь к файлам фото и чертежей известен, тогда можно просто подгрузить их в PictureBox и при переходе на другую запись загружать в него соответствующее изображение. Только с чертежами AutoCADa (если они хранятся в его родном формате) будет сложнее: нужно будет подключить dll, предоставляющую доступ к функциям AutoCADa (наверняка среди них есть такая, которая позволяет преобразовать чертёж из родного формата в *.jpg например) - по этому поводу придётся поискать инфу в инете.

VarelikSH
15.07.2006, 18:47
Можно конешно использовать вставленный рисунок, но нерационально. Во-первых: тысячи объектов вручную вставлять, во-вторых: фото периодически меняются, в-третьих: у одного объекта несколько ракурсов, хотелось бы иметь возможность их все просмотреть, так же как и характеристики в подчинённой форме.
Надо чтобы была ссылка на конкретную папку откуда брать рисунки для просмотра.
Можно оформить и как окно отдельной проги поверх всех окон. Но чтобы она реагировала на события в базе. А для AutoCADa я как-то видел прогу для просмотра чертежей БЕЗ УСТАНОВКИ AutoCADa на комп. Правда не помню где. Но если решится вопрос организации с рисунками, то найду как нить, чтоб оформить аналогично для чертежей. Просто когда я её видел не было необходимости. Проще было подойти к соседнему компу чтобы посмотреть. А с базой работают и другие специалисты, у которых нет AutoCADa.

1
15.07.2006, 19:43
Можно конешно использовать вставленный рисунок, но нерационально. Во-первых: тысячи объектов вручную вставлять, во-вторых: фото периодически меняются, в-третьих: у одного объекта несколько ракурсов, хотелось бы иметь возможность их все просмотреть, так же как и характеристики в подчинённой форме.
Надо чтобы была ссылка на конкретную папку откуда брать рисунки для просмотра.
Зачем же вручную? Имя файла/папки находится в зависимости от данных в таблице, то есть имея запись, характеризующую данный объект, можно "вычислить" путь до рисунков и чертежей к нему. Или я не так понял логику структуры каталогов с картинками и чертежами?

А для AutoCADa я как-то видел прогу для просмотра чертежей БЕЗ УСТАНОВКИ AutoCADa на комп.
Я и не говорил, что нужно будет на каждый клиентский комп ставить AutoCAD, надо всего лишь прикрепить к проекту (а также зарегестрировать в системе) библиотеку, позволяющую програмно читать чертежи в формате AutoCADa, а также, возможно, прописать что-нибудь в реестре, но для этого нужно обратиться к документации для программирования под AutoCAD.

VarelikSH
20.07.2006, 16:22
Ты всё понял правильно.
У меня главная проблема - я не программер. Хотя и не полный нуль. Поэтому и спрашиваю совета по конкретным действиям. Общими фразами я сам даю задания подчинённым. Каким образом можно "вычислить" путь до рисунков и чертежей к нему и как организовать взаимодействие вьювера с базой. Если можно поконкретнее. (Как в старом анекдоте "Норд-вест? Ты не умничай, а пальцем покажи")

1
20.07.2006, 18:20
Каким образом можно "вычислить" путь до рисунков и чертежей к нему и как организовать взаимодействие вьювера с базой.
Допустим, база Access'a лежит по адресу C:\DB\, картинки и чертежи - по адресу C:\DB\Base. На форме есть элемент Image (imgPic), куда будет загружаться изображение.

Чтобы прочитать базу данных нужно подключиться к ней с помощью ADO, можно и с помощью DAO (но это вчерашний день). Допустим, это сделано и из таблицы вытащено название файла (например, pic567) в переменную strFileName.

Теперь код:
Dim strFilePath As String
strFilePath = Application.CurrentProject.Path & "\Base\" & strFileName & ".jpg"
'В результате в переменной strFilePath мы получим C:\DB\Base\pic567.jpg
'Application.CurrentProject.Path - возвреащает путь до данного запущенного приложения (C:\DB)
imgPic.Stretch = True
imgPic.Picture = LoadPicture(strFilePath)

При нажатии на одну кнопку в Image загружается следующий рисунок, при нажатии на другую - предыдущий с помощью всё того же кода (предварительно поместив в strFilePath следующий/предыдущий объект из Recordset'a):
imgPic.Picture = LoadPicture(strFilePath)
Для рисунков всё элементарно, а вот для того, чтобы "читать" чертежи, как я уже писал, нужно почитать документацию по работе с API для AutoCAD'a.

Прошу прощения, если всё очень сильно разжевал, как для ламеров :)

zeus200x
07.11.2006, 05:16
Есть ли возможность создавать хранимые процедуры в access-е?
Смотрел справку, нашел пример:
CREATE PROCEDURE ... ла-ла-ла
Попробовал вбить в SQL-конструкторе(адаптированный под свои нужды), на что Access возмутился и сказал что, дескать, имеет место синтаксическая ошибка после слова CREATE(он вообще упоминал CREATE TABLE почему-то)
Ну так вопрос такой: можно? и как? куда записывать?

Я подсоединяюсь к базе на дот нет, хочу запросы хранить непосредственно в БД, а то мороки много обертки писать.