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

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

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

Кстати, при попытке записи с помощью инсерта, реально происходит замена (update) текущей записи (на которой стоит курсор). И записываются все(!!!) данные из МЕМы. Правда при этом выдается ошибка "Ошибочный аргумент".
Что делать пока неясно...
...
Рейтинг: 0 / 0
Запись MEMO в таблицу
    #32241303
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Этот метод есть и в 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
Запись MEMO в таблицу
    #32241349
GuDVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, буду бороться...
...
Рейтинг: 0 / 0
Запись MEMO в таблицу
    #32241416
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> Насколько я понял, МЕМО-контрол не должен быть привязан к полю БД? Неудобственно как-то...

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


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