LEADERSOFT.ru Разработка на заказ программ и сайтов
Форумы по информационным технологиям
 
Регистрация  |  Вход
left
Форумы Минимизировать
ПоискСписок форумов
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Добавлени...
 Тема: Добавление property
 
 15.06.2007 21:08:10
OPER
15 сообщения


Тема: Добавление property
Помогите! Пусть есть поле в таблице типа boolean, при создании его с помощью DAO, его значение отображается в таблице виде числа (-1 или 0), а хотелось бы в виде checkbox'а. На тип отображений влияет property "DispalyControl"? Если так, то как его добавить? В объекте Property нет метода CreateProperty. Подскажите кто может.


P.S. Доступ к базе с помощью ADO и DAO
Автор: OPER от 04.03.2004 17:50:50 Источник ...
 15.06.2007 21:08:10
All
4316 сообщения
1-ый


RE: Добавление property
У полей таблиц нет некоторых свойств, поэтому их первоначально надо добавить (append). Детально это расписано в лекциях по Access. Вот пример из этой темы.
Public Function funCreateFields(strTable As String) As Boolean
Dim dbs As Database, tdf As TableDef, fld As Field

On Error GoTo 999 'Назначаем переход по ошибке
funCreateFields = False 'Возвращаем результат при ошибке
Set dbs = appAccess.CurrentDb ‘Определяем базу данных
Set tdf = dbs.TableDefs(strTable) 'Находим таблицу

With tdf 'Выбираем таблицу для изменения
.Fields.Append .CreateField("Выражение", dbText, 75) 'Создаем поле Выражение
.Fields.Append .CreateField("Итог", dbDouble) 'Создаем поле Итог
End With

Set fld = tdf.Fields("Пункт") 'Изменяем свойства поля "Пункт"
funChangeProperty fld, "Description", dbText, "Номер выражения в калькуляторе" 'Изменяем описание
funChangeProperty fld, "Format", dbText, "Fixed" 'Назначаем фиксированный формат
funChangeProperty fld, "DecimalPlaced", dbByte, 0 'Отключаем десятичные знаки
Set fld = Nothing 'Уничтожаем переменную поля
Set tdf = Nothing 'Уничтожаем переменную таблицы
funCreateFields = True 'Возвращаем результат
Exit Function 'Выходим из программы

999:
MsgBox Err.Description, vbCritical, "Создание таблицы" 'Сообщаем об ошибке
Err.Clear 'Очищаем поток от ошибок
End Function

Function funChangeProperty(fld As Field, strName As String, varType
As Variant, varValue As Variant) As Boolean
Dim prp As Variant
On Error GoTo 999 'Назначаем переход по ошибке
funChangeProperty = False 'Возвращаем результат при ошибке
fld.Properties(strName) = varValue 'Присваиваем значение полю
funChangeProperty = True 'Возвращаем результат
Exit Function 'Выходим из программы

999:
If Err = 3270 Then 'Свойство не найдено
Set prp = fld.CreateProperty(strName, varType, varValue) 'Создаем свойство
fld.Properties.Append prp 'Добавляем свойство
Err.Clear 'Очищаем поток от ошибки
Resume Next 'Возвращаемся к следующему оператору
End If
Err.Clear 'Очищаем от незнакомой ошибки
End Function





P.S. Доступ к базе с помощью ADO и DAO
Автор: Admin от 0:00:00 Источник ...
 15.06.2007 21:08:10
OPER
15 сообщения


RE: Добавление property
При добавлении Property возникает ошибка - "Недопустимая операция". Что можно сделать в этом случае?
If fldDest.Type = dbBoolean Then
Set FieldProperty = fldDest.CreateProperty(fldSrc.Properties("DisplayControl").Name, fldSrc.Properties("DisplayControl").Type, fldSrc.Properties("DisplayControl").Value)
fldDest.Properties.Append FieldProperty
End If


P.S. Доступ к базе с помощью ADO и DAO
Автор: OPER от 06.03.2004 12:48:33 Источник ...
 15.06.2007 21:08:10
OPER
15 сообщения


RE: Добавление property
При добавлении Property возникает ошибка - "Недопустимая операция". Что можно сделать в этом случае?
If fldDest.Type = dbBoolean Then
Set FieldProperty = fldDest.CreateProperty(fldSrc.Properties("DisplayControl").Name, fldSrc.Properties("DisplayControl").Type, fldSrc.Properties("DisplayControl").Value)
fldDest.Properties.Append FieldProperty
End If


P.S. Доступ к базе с помощью ADO и DAO
Автор: OPER от 06.03.2004 12:48:47 Источник ...
 15.06.2007 21:08:10
OPER
15 сообщения


RE: Добавление property
При добавлении Property возникает ошибка - "Недопустимая операция". Что можно сделать в этом случае?
If fldDest.Type = dbBoolean Then
Set FieldProperty = fldDest.CreateProperty(fldSrc.Properties("DisplayControl").Name, fldSrc.Properties("DisplayControl").Type, fldSrc.Properties("DisplayControl").Value)
fldDest.Properties.Append FieldProperty
End If


P.S. Доступ к базе с помощью ADO и DAO
Автор: OPER от 06.03.2004 12:48:55 Источник ...
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Добавлени...
ПоискПоиск  Список форумовСписок форумов  
right