Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запись MEMO в таблицу / 7 сообщений из 7, страница 1 из 1
19.08.2003, 19:57
    #32240882
GuDVin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись MEMO в таблицу
Как это сделать? Я тут что-то слышал про unbound, но что это? И как это сделать?
Желательно более-менее подробно. А то на больших объемах он, вполне естественно, не хочет писать обычным инсертом.

Заранее спасибо.
Можно просто ткнуть в какую-нить доку. :-)
...
Рейтинг: 0 / 0
19.08.2003, 20:02
    #32240885
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись MEMO в таблицу
Ответа у меня нет, но unbound - это контрол на форме, у которого ControlSource пустой (к таблице не привязан).
...
Рейтинг: 0 / 0
19.08.2003, 20:10
    #32240894
IgorM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись MEMO в таблицу
Посмотри в хелпе описание AppendChunk
...
Рейтинг: 0 / 0
20.08.2003, 10:27
    #32241262
GuDVin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись MEMO в таблицу
Владимир Саныч
Насколько я понял, МЕМО-контрол не должен быть привязан к полю БД? Неудобственно как-то...

IgorM
Что-то хелп по AppendChunk'у ничего не показывает, видать глюк установки... Если это из область ADO, то я знаю, что это за фигня, но не хотелось бы использовать ADO...

Кстати, при попытке записи с помощью инсерта, реально происходит замена (update) текущей записи (на которой стоит курсор). И записываются все(!!!) данные из МЕМы. Правда при этом выдается ошибка "Ошибочный аргумент".
Что делать пока неясно...
...
Рейтинг: 0 / 0
20.08.2003, 10:38
    #32241303
IgorM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись MEMO в таблицу
Этот метод есть и в DAO и ADO

Выдержки из хелпа A'97
==========
Метод AppendChunk

Добавляет данные из строкового выражения в объект Field (поле) типа Memo или Long Binary в объекте Recordset.

Синтаксис

наборЗаписей ! поле.AppendChunk источник

Синтаксис метода AppendChunk содержит следующие элементы.

Элемент Описание
наборЗаписей Объектная переменная, задающая объект Recordset, который содержит нужное семейство Fields.
поле Объектная переменная, задающая имя объекта Field, свойство Type которого имеет значение dbMemo (Memo), dbLongBinary (Long Binary) или эквивалентное.
источник Выражение или переменная типа Variant (подтип String), содержащие данные, которые необходимо добавить в объект Field, определяемый аргументом поле.
Дополнительные сведения

Методы AppendChunk и GetChunk применяются для доступа к фрагментам данных в полях типа Memo или Long Binary.
Кроме того, эти методы используются для экономии пространства, отведенного для записи строк при работе с полями Memo и Long Binary. Некоторые операции (например, копирование) выполняются с применением временных строк. Если объем памяти ограничен, то экономнее работать не с целыми полями, а с их фрагментами.
Если при вызове метода AppendChunk текущая запись не определена, возникает ошибка.

Примечания

· При первом вызове метода AppendChunk (после вызова метода Edit или AddNew) содержимое поле заменяется на значение строкового выражения. Добавление строкового выражения к содержимому поля осуществляется при последующих вызовах AppendChunk в рамках сеанса редактирования, открытого в одном методе Edit или AddNew.
· В рабочей области ODBCDirect, если ранее не было изменено поле в текущей записи, вызвать метод AppendChunk в режиме Edit невозможно (хотя ошибка при этом не возникает).

· После вызова метода AppendChunk для поля в рабочей области ODBCDirect чтение или запись в это поле с помощью инструкции присвоения невозможны до выхода из текущей записи и последующего возвращения в нее. Это выполняется с помощью методов MoveNext и MovePrevious.

=========
=========
В следующем примере в поле «Примечания» каждой записи таблицы «Сотрудники» добавляются некоторые сведения. Поле «Примечания» имеет тип MEMO. Для получения содержимого поля используется метод GetChunk, для добавления сведений и внесения измененного блока данных в поле «Примечания» используется метод AppendChunk.

Код: plaintext
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.
Sub AddToMemo()
	Dim dbs As Database, rst As Recordset
	Dim fldNotes As Field, fldFirstName As Field
	Dim fldLastName As Field
	Dim lngSize As Long, strChunk As String

	' Возвращает ссылку на текущую базу данных.
	Set dbs = CurrentDb
	' Создает табличный объект Recordset.
	Set rst = dbs.OpenRecordset( "Сотрудники" )
	' Возвращает ссылки на объекты Field.
	Set fldNotes = rst!Примечания
	Set fldFirstName = rst!Имя
	Set fldLastName = rst!Фамилия
	
	' Цикл по всем записям в наборе записей.

Do Until rst.EOF
		' Проверяет существование данных в поле «Примечания».
		If IsNull(fldNotes.Value) Then
			' Если данных нет, используется только метод AppendChunk.
			strChunk = fldFirstName _
				&  " "  & fldLastName &  " отличный сотрудник." 
			With rst
				.Edit
				!Примечания = strChunk
				.Update
				.MoveNext
			End With
		Else
			lngSize = Len(fldNotes)
			' Получает существующие данные с помощью метода GetChunk.

strChunk = fldNotes.GetChunk(0, lngSize)
			' Изменяет данные.
			strChunk = strChunk &  "  "  & fldFirstName _
				&  " "  & fldLastName &  " отличный работник." 
			With rst
				.Edit							 ' Разрешает редактирование.
				!Примечания = ""			 ' Инициализирует поле.
				!Примечания.AppendChunk strChunk	 ' Добавляет измененные данные.
				.Update						 ' Сохраняет изменения.
				.MoveNext					 ' Переходит к следующей записи.

End With
		End If
	Loop
	rst.Close
	Set dbs = Nothing
End Sub

=========
...
Рейтинг: 0 / 0
20.08.2003, 10:51
    #32241349
GuDVin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись MEMO в таблицу
Спасибо, буду бороться...
...
Рейтинг: 0 / 0
20.08.2003, 11:13
    #32241416
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись MEMO в таблицу
> Насколько я понял, МЕМО-контрол не должен быть привязан к полю БД? Неудобственно как-то...

Я только ответил, что такое unbound. Я не считаю, что это подходит для нашего случая. :^)
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запись MEMO в таблицу / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]