Вложение

bao89
Дата: 22.12.2011 11:07:49
Подскажите пожалуйста, очень нужно.
Что прописать в процедуре обработки событий (visual basic) чтобы во вложение добавилось фото?
Joss
Дата: 22.12.2011 11:20:54
А подробнее?
bao89
Дата: 22.12.2011 11:26:22
Joss,
Есть таблица, в ней есть поле вложение.
Есть форма, на ней кнопка. Форма сделана по таблице.
Нужно чтобы при нажатии кнопки, из определенной папки во вложение добавилось фото.
Ставлю на событие "нажатие кнопки" процедуру обработки событий.
Как написать на языке VB чтобы во вложение добавить что-то?
Access 2007
Joss
Дата: 22.12.2011 15:18:31
AlexSyr2009
Дата: 23.12.2011 01:31:52
bao89,
Microsoft Access 2007 Working with the Attachment DataType
(см. Code Example 7.1: Programmatically Adding a New File to an Attachment Field)

Вложение файлов в записи базы данных
bao89
Дата: 30.01.2012 16:08:29
Проблема до сих пор не решилась, очень срочно надо, помогите плиз.
Перечитал все что скидывали, так и не разобрался.
Я не силен в программировании.
Вот ссылка на базу, которую я сделал: http://zalil.ru/32607585
Не судите строго =)

Так вот, суть вот в чем.
Тыкаем на главной форме кнопку "Новый клиент", открывается форма "Клиенты".
На ней щелкаем кнопку с фотоаппаратом.
Открывается форма frm1.
На ней кликаем кнопку "старт". Начинается захват изображения с вебкамеры в окошке.
Нажимаем кнопку "в файл" и создается файл в папке foto на диске С:\, название по номеру
карты который ввели в форме "Клиенты".
Покажите плиз наглядно, что куда прописывать, чтобы после создания файла он попадал автоматом во вложение в форме "Клиенты"?????
ОЧЕНЬ НАДО!!!! ПОМОГИТЕ ПОЖАЛУЙСТА!!!!!!
AlexSyr2009
Дата: 30.01.2012 22:44:36
bao89,
Private Sub cmdSave_Click()
.....
    Dim db As DAO.Database
    Dim rsKl As DAO.Recordset2
    Dim rsPic As DAO.Recordset2
    Set db = CurrentDb
Зачем эти две строчки? - в сад
'    Set rsKl = Me.Recordset
'    rsKl.Edit

НЕТ у Вас такой таблицы "Form_Клиенты" есть "Клиенты"
'    Set rsKl = db.OpenRecordset("Form_Клиенты")
Здесь нужно свое id подставить
    Set rsKl = db.OpenRecordset("SELECT * FROM Клиенты WHERE id=49")

    rsKl.Edit
    Set rsPic = rsKl.Fields("ФотоКлиента").Value
    rsPic.AddNew
    rsPic.Fields("FileData").LoadFromFile "D:\123.jpg"
    rsPic.Update
    rsKl.Update

Не критично, если доверяете MS
'Set rs... = Nothing

End Sub
bao89
Дата: 31.01.2012 21:16:08
AlexSyr2009, спасибо огромное, помогло =) Теперь хоть разобрался немного.
Единственное, возникла неожиданная проблемка.
В строчке:
Set rsKl = db.OpenRecordset("SELECT * FROM Клиенты WHERE id = 44")

Если вместо этого подставить что-то кроме числа, то перестает работать, пишет:
Run-time error '3061':
Слишком мало параметров. Требуется 1.
Если при этом нажать Debug, то подсветит как раз эту строку.

А менял 44 на: Form_Клиенты.id.Value, т.е.:
Set rsKl = db.OpenRecordset("SELECT * FROM Клиенты WHERE id = Form_Клиенты.id.Value")
Пробовал перед этим создать переменную (Dim ids As Long), и присвоить переменной значение Form_Клиенты.id.Value, а в строку подставить переменную ids, т.е.:
Set rsKl = db.OpenRecordset("SELECT * FROM Клиенты WHERE id = ids")
Ни так ни так не работает, а мне же надо выбрать строку с максимальным id в таблице, т.е. с последним, а оно каждый раз новое и я не могу указать конкретное число id.
mds_world
Дата: 31.01.2012 21:24:52
Надо задать текущее значение контрола формы
Set rsKl = db.OpenRecordset("SELECT * FROM Клиенты WHERE id =" &  Form_Клиенты.id.Value)