-Поиск по дневнику

Поиск сообщений в rss_sql_ru_access_programming

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 16.03.2006
Записей:
Комментариев:
Написано: 4


Создание текстового описания объекта (таблица,запрос) DAO

Вторник, 24 Сентября 2019 г. 13:56 + в цитатник
Здравствуйте! Помогите пжлст разобраться с проблемой: пытаюсь программно через DAO создать текстовое описание запроса. Никак не могу понять почему не работает и выдает ошибку 3367. Вроде все необходимые референсы подключены.
В интернете ничего дельного не нашел. Порыл форум тоже. Задал вопрос в https://www.sql.ru/forum/382821/opisanie-polya-tablicy-access - нет ответа.

Самое странное, что с запросом на объединение (в примере Запрос1) срабатывает, а в простым запросом на выборку нет (Запрос2). Как так?

Option Compare Database

Function TEST() '
'пытаюсь программно через DAO создать текстовое описание запроса. Никак не могу понять почему не работает и выдает ошибку 3367 _
Вроде все необходимые референсы подключены _
Самое странное, что с запросом на объединение срабатывает, а в простым запросом на выборку нет. Как так?
DoCmd.SetWarnings False
    
    Dim dbs As DAO.Database, prp As DAO.Property, tdf As DAO.QueryDef
    Dim sDescr As String
    Dim QName As String 'имя запроса

Set dbs = DBEngine(0).OpenDatabase(CurrentDb.Name) 'CurrentDb
    Set tdf = Nothing
    Set MyQuery = Nothing

'здесь просто убиваю тестовые результаты
On Error Resume Next
    DoCmd.DeleteObject acQuery, "Запрос1 NEW"
    DoCmd.DeleteObject acQuery, "Запрос2 NEW"
On Error GoTo 0

'РАБОТАЕТ
QName = "Запрос1" 'есть запрос на объединение здесь называется "Запрос1"
    GoSub Process1
'НЕ РАБОТАЕТ!
QName = "Запрос2" 'есть запрос на выборку здесь называется "Запрос2"
    GoSub Process1

Exit Function

Process1:
    On Error GoTo err_
txtSQL = dbs.QueryDefs(QName).SQL
'просто создаю его копию
'DoCmd.CopyObject , QName & " NEW", acQuery, QName
    Set MyQuery = dbs.CreateQueryDef(QName & " NEW", txtSQL)

'дальше хочу создать описание объекта (созданного запроса)
    sDescr = dbs.Containers("tables").Documents(QName).Properties("description") 'читаем описание объекта, которое есть по-любому (по условию)
    'sDescr = "Тест бл*"
'создаем описания таблицы (здесь не используется)
'CurrentDb.Containers("tables").Documents(QName & " NEW").Properties("description") = sDescr & " NEW" 'создаем описания таблиц

    dbs.TableDefs.Refresh
    Application.RefreshDatabaseWindow
    
    Set tdf = dbs.QueryDefs(QName & " NEW")
    Set prp = tdf.CreateProperty("description", dbText, sDescr)
    tdf.Properties.Append prp 'Call tdf.Properties.Append(prp) ВОТ ЗДЕСЬ НЕ ПРОХОДИТ и РУГАЕТСЯ!!
    
    Set tdf = Nothing
    Set MyQuery = Nothing
Return

err_:
    If Err.Number = 3270 Then
        tdf.Properties.Append tdf.CreateProperty("Description", dbText, sDescr)
    ElseIf Err.Number = 3367 Then
        Err.Raise Err.Number, Err.Source, Err.Description, Err.HelpFile, Err.HelpContext
    End If
Resume Next

End Function

https://www.sql.ru/forum/1317386/sozdanie-tekstovogo-opisaniya-obekta-tablica-zapros-dao


 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку