Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Преобразовать поле типа MEMO в HYPERLINK программно или запросом / 10 сообщений из 10, страница 1 из 1
06.03.2020, 09:48
    #39935034
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать поле типа MEMO в HYPERLINK программно или запросом
Следующая проблема.

В программе таблица создаётся запросом. Типа
Код: sql
1.
CREATE TABLE z19([КодСуб] SMALLINT, ... )


Мне необходимо сделать в создаваемой таблице поле типа HYPERLINK. Нашел в документации, что поле типа HYPERLINK напрямую создать нельзя. Надо создавать поле типа MEMO программно, а потом в процессе создания установить соответствующие атрибуты
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
        'Add a Hyperlink Field
        Dim AllDefs As DAO.TableDefs, TblDef As DAO.TableDef, Fld As DAO.Field
        Set AllDefs = Application.CurrentDb.TableDefs
        Set TblDef = AllDefs("~~Kitsch'n Sync")
        Set Fld = TblDef.CreateField("Hyperlink", dbMemo)
        Fld.Attributes = dbHyperlinkField + dbVariableField
        Fld.OrdinalPosition = 10
        TblDef.Fields.Append Fld

А если поле уже создано? Как его преобразовать в HYPERLINK ?


-------------------------------------------------------------
А ты вложил уже свой кровный рубль в 50-ти миллиардное состояние Билла Гейтса?
...
Рейтинг: 0 / 0
06.03.2020, 10:57
    #39935069
Преобразовать поле типа MEMO в HYPERLINK программно или запросом
А так пробовали?
Код: vbnet
1.
2.
        Set Fld = TblDef.Fields("Hyperlink")
        Fld.Attributes = dbHyperlinkField + dbVariableField
...
Рейтинг: 0 / 0
06.03.2020, 10:59
    #39935071
4d_monster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать поле типа MEMO в HYPERLINK программно или запросом
Кривцов Анатолий,

В Access 2010 такое ещё не работает. Может в более поздних.
...
Рейтинг: 0 / 0
06.03.2020, 11:14
    #39935085
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать поле типа MEMO в HYPERLINK программно или запросом
Да, код примера взят отсюда Инструкция CREATE TABLE (Microsoft Access SQL) Там упоминался Access 2013. А мне бы начиная с 2003. Или хотя бы 2010.
...
Рейтинг: 0 / 0
06.03.2020, 11:17
    #39935086
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать поле типа MEMO в HYPERLINK программно или запросом
В msa2000 уже работала инструкция
Код: sql
1.
ALTER TABLE [table1] ALTER COLUMN [field1] LONG

Но какие надо задать параметры чтобы MEMO преобразовать в HYPERLINK ? Нигде не нашел примеров.
...
Рейтинг: 0 / 0
06.03.2020, 13:33
    #39935174
Преобразовать поле типа MEMO в HYPERLINK программно или запросом
Видимо решения нет. Нагуглил такое:
ALTER [ COLUMN ] column_name SET ( attribute_option = value [, ... ] )
На как это использовать и поддерживается ли вообще в Аксе - ничего не нашел.
А чем вас не устраивает ваш пример?
Создавайте поле с помощью DAO. Если в существующем поле есть данные, то по стандартной схеме: Создать новое - копировать данные из старого в новое - удалить старое - переименовать новое.
...
Рейтинг: 0 / 0
06.03.2020, 13:48
    #39935184
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать поле типа MEMO в HYPERLINK программно или запросом
Ну вот такие запросы в Access работают
Код: sql
1.
ALTER TABLE Employees ALTER COLUMN Salary CHAR(20);


Но какой именно параметр надо изменять? И как?
...
Рейтинг: 0 / 0
06.03.2020, 14:20
    #39935202
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать поле типа MEMO в HYPERLINK программно или запросом
методом проб и ошибок.
Свойство Attributes у поля HYPERLINK должно быть 3770 (dbHyperlinkField + dbVariableField)
Но свойство Attributes программно изменить невозможно. Сижу, думаю.
...
Рейтинг: 0 / 0
06.03.2020, 14:25
    #39935205
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать поле типа MEMO в HYPERLINK программно или запросом
Что интересно. Поле типа HYPERLINK на MEMO запросом изменить можно. А вот обратно не получается...
Код: sql
1.
ALTER TABLE [z1] ALTER COLUMN [Hyper] MEMO
...
Рейтинг: 0 / 0
06.03.2020, 15:16
    #39935238
Predeclared
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать поле типа MEMO в HYPERLINK программно или запросом
Это оттого, что нету такого типа данных у Jet, как HYPERLINK.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Преобразовать поле типа MEMO в HYPERLINK программно или запросом / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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