Автоматизация вставки объекта? Need help!

Borodach
Дата: 02.12.2006 12:14:25
С акцессом знаком я слабо и с визуал бейсиком, где пишутся для него макросы, тем более. Мне кажется автоматизация действий, которые вополняют сотрудники вполне реальна, но не знаю возможно ли это, может подскажут знающие люди и так:

В одной ячейке содержится номер вида (E25164942) в другую надо вставить файл с именем идентичном номеру первой ячейке т.е. (E25164942.jpg)

Вот и вся задача, в данный момент тыкается в ячейку, вставить объект, выбирается файл и т.д. Возможно ли автоматически это делать? Наверняка возможно, если кто–то подскажет готовое решение, то приз гарантирован! Заранее спасибо за советы и замечания. Для наглядности картинка:
nibbles
Дата: 02.12.2006 15:06:59
' Эту функцию нужно запустить
' ВНимание! К проекту должна быть подключена библиотека ADODB не ниже 2.5!
public sub ufLoadAllPictures()
dim rst as adodb.Recordset
    set rst = new adodb.Recordset
    rst.source = "SELECT [Номер заявки], [фото] FROM Таблица1 WHERE not [фото] is null"
    rst.Open ,CurrentProject.Connection,adOpenForwardOnly,adLockOptimistic
    do until rst.Eof
        ' Вставить файл в указанное поле 
        ufFileFromADOFieldSave "C:\ImageDir\"& rst(0) & ".jpg", rst, "[фото]"
        rst.Update
        rst.MoveNext
    loop
    rst.Close
    Set rst = nothing
end sub

'==============================================================
' Назначение:
'       Сохранение файла в указанное поле таблицы
' Аргументы:
'       путь к файлу
'       набор записей (открытый для записи. Указатель уже стоит на нужной записи)
'       имя поля для записи в него файла
' Автор: nibbles
' =================================================================
Public Sub ufFileFromADOFieldSave(ByVal strPath As String, _
                                ByRef rst As ADODB.Recordset, _
                                ByVal strField As String)
Dim myStream As ADODB.Stream
    
    Set myStream = New ADODB.Stream
    myStream.Type = adTypeBinary
    myStream.Open
    myStream.LoadFromFile strPath
    rst(strField).Value = myStream.Read
    myStream.Close
    Set myStream = Nothing
    
End Sub
Borodach
Дата: 02.12.2006 16:22:31
Спасибо, что откликнулись, но мы совсем не воткнём как подключить к проекту библиотеку ADODB, как же это осуществить.
Borodach
Дата: 02.12.2006 16:57:54
Мда, осатонеть можно, обычным юзерам вроде нас это тяжко даётся... Нам нужна либо пошаговая инструкция (нажать сюда, нажать туда), либо вызов специалиста (Москва, центр). Сколько будет стоить такая работа? Вопрошаю уважаемого nibbles'a ну или может еще кто согласится помочь.
nibbles
Дата: 02.12.2006 17:06:31
создать новый модуль
открыть его
Tools-References...
выбрать из списка Microsoft ActiveX Data Object 2.5 (или выше)
копировать предложенный фрагмент кода в этот модуль
установить курсор в любое место процедуры ufLoadAllPictures
нажать на F5
сообщить о возникнувших ошибках
все
Старый ворчун
Дата: 02.12.2006 17:44:35
nibbles
[src vba]
' Эту функцию нужно запустить
' ВНимание! К проекту должна быть подключена библиотека ADODB не ниже 2.5!

По моему это не совсем то, что нужно автору топика. Ему надо поместить в OLE поле объект, а вы предлагаете загрузить содержимое файла.
Borodach
Дата: 02.12.2006 18:09:05
Да, нужно вставить объект. В настоящее время пользователь идёт в ячейку фото, выбирает "вставить объект - Microsoft Photo Editor 3.0 picture и выбирает файл (значение ячейки "Номер заявки".jpg) По предложенной nibbles"ом инструкции выдаёт ошибку eror 3225 : Item cannot be found in the collection corresponding to the request name or ordinal и при нажатии Debug подсвечивает строку:
myStream.LoadFromFile strPath
Andre33
Дата: 12.02.2013 18:37:17
Актуально. Кто нибудь решил задачку?
Анатолий ( Киев )
Дата: 12.02.2013 19:23:04
Andre33
Актуально. Кто нибудь решил задачку?

Для начала ответьте на вопросы:
1. Вы хотите в таблице хранить сами картинку (поле OLE Object) или достаточно хранить путь к файлу?
2. Вы собираетесь работать непосредственно с таблицей или, все же, через форму?
3. Что вы уже пробовали и что не получается?
Andre33
Дата: 13.02.2013 13:36:02
1. Задача аналогичная описанной в первом посте. Желательно хранить весь файл.
2. Работать нужно непосредственно с таблицей (задача - первичное наполнение базы)
3. Предложенное выше решение выдает ошибку аналогичную выше описанной (User-defined type not defined).