1 (изменено: yuriy2000, 2013-10-08 22:41:48)

Тема: VBScript: Создать свойство Caption для поля Access

Добрый день/вечер!

Подскажите как программным путем создать Свойство "подпись" (Caption) для поля в базе  Access.
Если это свойство было инициализировано, то его можно изменить, например так


Set oEngine = CreateObject("DAO.DBEngine.120")
Set oDB = oEngine.OpenDatabase("Test1.accdb")

oDB.TableDefs("Table1").Fields(0).Properties("Caption") = "Test1"

Если поле не было инициализировано ранее, то выдается ошибка. А вот как инициализировать при создании БД программным путем?

Нашел здесь примеры по работе с Property через DAO, но что-то не помогло. Т.е. не создается Caption.

Function SetPropertyDAO(obj As Object, strPropertyName As String, intType As Integer, _
    varValue As Variant, Optional strErrMsg As String) As Boolean
On Error GoTo ErrHandler
    'Purpose:   Set a property for an object, creating if necessary.
    'Arguments: obj = the object whose property should be set.
    '           strPropertyName = the name of the property to set.
    '           intType = the type of property (needed for creating)
    '           varValue = the value to set this property to.
    '           strErrMsg = string to append any error message to.
    
    If HasProperty(obj, strPropertyName) Then
        obj.Properties(strPropertyName) = varValue
    Else
        obj.Properties.Append obj.CreateProperty(strPropertyName, intType, varValue)
    End If
    SetPropertyDAO = True

ExitHandler:
    Exit Function

ErrHandler:
    strErrMsg = strErrMsg & obj.Name & "." & strPropertyName & " not set to " & varValue & _
        ". Error " & Err.Number & " - " & Err.Description & vbCrLf
    Resume ExitHandler
End Function

Public Function HasProperty(obj As Object, strPropName As String) As Boolean
    'Purpose:   Return true if the object has the property.
    Dim varDummy As Variant
    
    On Error Resume Next
    varDummy = obj.Properties(strPropName)
    HasProperty = (Err.Number = 0)
End Function

Высылаю свой пример скрипта.

Post's attachments

1.vbs 2.16 kb, 7 downloads since 2013-10-08 

You don't have the permssions to download the attachments of this post.

2

Re: VBScript: Создать свойство Caption для поля Access

Вам именно VBScript или таки VBA?

3

Re: VBScript: Создать свойство Caption для поля Access

Мне таки хотелось бы через VBScript - я же приложил свой пример, а что разве проблема именно в этом?

4

Re: VBScript: Создать свойство Caption для поля Access

Нашел путем эксперимента в чем была проблема - оказывается свойство "подпись" (Caption) для поля можно добавить только после того как сама таблица уже создана. Т.е. сперва создали таблицу, а потом уже можно и свойства полей этой таблицы присваивать. Хотя "стандартные" свойства Size, Required и т.д.) можно присваивать в процессе создания.
На мой взгляд не логично

5

Re: VBScript: Создать свойство Caption для поля Access

yuriy2000, полагаю потому, что второе относится к, собственно, самой базе данных, а первое — сугубо к Access.