Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как получить список имен полей таблицы в MS Access? / 19 сообщений из 19, страница 1 из 1
10.02.2003, 08:48
    #32103628
ProfSD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить список имен полей таблицы в MS Access?
Нужно выпихнуть в DataList список полей для своего конструктора отчетов.

Как получить список имен полей таблицы в MS Access?
Желательно при помощи SQL.
...
Рейтинг: 0 / 0
10.02.2003, 16:57
    #32104056
ProfSD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить список имен полей таблицы в MS Access?
Народ , а это вообще в принципе возможно, с акцесовской базы, получить в клиент на VB список полей таблици иначе как послать select * from table
и вручную посмотреть псевдонимы полей?
...
Рейтинг: 0 / 0
10.02.2003, 17:01
    #32104060
Savik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить список имен полей таблицы в MS Access?
1. TableDefs("table").Fields(i)
2. set rst = currentDb.openrecordset("table")
rst.fields(i)
...
Рейтинг: 0 / 0
10.02.2003, 17:03
    #32104061
MixaCh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить список имен полей таблицы в MS Access?
Как при помощи SQL - не знаю.... типа sysfields что-то ничего не наблюдается....

А получить в VB можно через

Код: plaintext
CurrentDb.TableDefs( "Имя таблицы" ).Fields(i).Name


Но только это уж не SQL....
...
Рейтинг: 0 / 0
10.02.2003, 17:24
    #32104084
ДиД
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить список имен полей таблицы в MS Access?
самый простой способ: поле со списком есть свойство "тип источника строк" можно выбрать "список полей"
или, если не подойдет, вот такой вариант
Dim cat As ADOX.Catalog
Dim col As ADOX.Column
Set cat = New ADOX.Catalog
cat.ActiveConnection = CurrentProject.Connection
For Each col In cat("Клиенты").Columns
MsgBox col.Name
Next col
...
Рейтинг: 0 / 0
11.02.2003, 11:23
    #32104399
ProfSD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить список имен полей таблицы в MS Access?
Получается что получить из Microsoft Access поля через SQL нельзя.
Зато получить их через обектную модель труда не представляет.
...
Рейтинг: 0 / 0
11.02.2003, 11:56
    #32104427
Savik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить список имен полей таблицы в MS Access?
Что значит через SQL?

пусть ф-ция pole(tabl,i) (определенная в ACCESS) возвращает наименование i-го поля таблицы tabl по одному из предложенных методов.
Тогда select pole('t1',1) возвратит наименование первого поля таблицы t1 разве не через SQL?
...
Рейтинг: 0 / 0
11.02.2003, 13:11
    #32104480
ProfSD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить список имен полей таблицы в MS Access?
1. Что это за функция pole? Если можно поподробней.

2. В Sql Server есть две таблицы SYSOBJECTS и SYSCOLUMNS пишешь обеденееный запрос, и все имена полей в рекрдсете, хош в через ADODC в DATALIST загоняй, хошь в гриду скинь. Данные получаются не зависемо через какой провайдер (ADO, OBDC и тп) и представлены они в стандартном виде, виде набора записей(это принципиально, речь идет о том писать или не писать оттедльный модуль для работы с акцесом).
Вот я и пытаюсь изобрести что то подобное для акцеса или мотивировано доказать что акцесс таких возможностей не предоставляет.

Пока получается что хочешь не хочешь но без перебора не обойтись. :(
...
Рейтинг: 0 / 0
11.02.2003, 14:25
    #32104546
Savik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить список имен полей таблицы в MS Access?
1. Функция поле - написанная ТОБОЙ функция.
2. пишешь запрос, использующий эту (или другую подобную функцию) и все имена полей в рекрдсете, хош в через ADODC в DATALIST загоняй, хошь в гриду скинь

А перебор и будет в этой функции...
...
Рейтинг: 0 / 0
11.02.2003, 14:35
    #32104560
MixaCh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить список имен полей таблицы в MS Access?
Вобщем согласен, что не очень удобно....
На серваке действительно по-приятнее....

А по поводу функции - можно конечно и налобать, но вот использование ее в SQL - как-то притянуто выглядит....

Select MyFunc(Table, i )

А i то как определять?!?!? Номер столбца в запросе тоже неизвестно как получить?!!?

Уж проще тогда загнать через функцию колонки в TempTable - оттуда уеж и тащить..... что-то наподобии syscolumns, через известное место, конечно......
...
Рейтинг: 0 / 0
11.02.2003, 15:00
    #32104595
ProfSD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить список имен полей таблицы в MS Access?
Вот я и пытался выяснить можно этот гиморой обойти, мне проще в проге спросить первую страку из таблицы и через Fields все имена запросить.

Ладно всем спасибо
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
08.09.2010, 15:58
    #36836302
Alexei Gennadevich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить список имен полей таблицы в MS Access?
Добрый день!

Позвольте продолжить тему почти 10-летней давности, дабы не заводить новую!

Мне нужно заполнить поле со списком названиями полей таблицы table_name. Мне понравился вариант с установкой в качестве источника строк список полей интересующей таблицы. Однако мне нужны все имена полей начиная со второго (или третьего, или четвертого, или ...) столбца. Можно это как-то организовать при помощи, например, построителя выражений?

Другой вариант, который меня устроил бы, - это перебор в цикле db.TableDefs(table_name).Fields(i).Name. Но тогда такой момент. Хочу вынести эту процедуру в отдельную функцию. Как тогда вернуть этот список полей?

Делал так (через добавление имен полей в коллекцию):

Код: plaintext
1.
2.
3.
4.
5.
sub my_sub()
    dim table_name as string: table_name="table name"
    dim column_names as Collection
    column_names=ColumnList(table_name)
end sub

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Function ColumnList(table_name As String)
    Dim column_names As New Collection
    Dim Q As Integer
    For Q =  0  To CurrentDb.TableDefs(table_name).Fields.Count -  1 
        column_names.Add CurrentDb.TableDefs(table_name).Fields(Q).Name
    Next
    ColumnList = column_names
End Function
Ну и естественно ничего не работает.
...
Рейтинг: 0 / 0
08.09.2010, 16:34
    #36836429
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить список имен полей таблицы в MS Access?
Alexei GennadevichНу и естественно ничего не работает.
Естественно. Функция возвращает коллекцию, а Вы это пытаетесь занести в строковую переменную.
...
Рейтинг: 0 / 0
08.09.2010, 21:45
    #36837003
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить список имен полей таблицы в MS Access?
ProfSDНужно выпихнуть в DataList список полей для своего конструктора отчетов.

Как получить список имен полей таблицы в MS Access?
Желательно при помощи SQL.

в отчете есть режим список полей для списков

копия экрана в приложении
...
Рейтинг: 0 / 0
08.09.2010, 22:32
    #36837043
Как получить список имен полей таблицы в MS Access?
ПЕНСИОНЕРКАв отчете есть режим список полей для списков
К сожалению это открытие более семи лет назад (10 фев 03, 17:24) уже было запатентовано
ДиДсамый простой способ: поле со списком есть свойство "тип источника строк" можно выбрать "список полей"
с той только разницей, что общепринятое слово "свойство" в вашем варианте почему-то трансформировалось в "режим".
...
Рейтинг: 0 / 0
08.09.2010, 22:35
    #36837049
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить список имен полей таблицы в MS Access?
Патентовед,

поэтому, я не пишу программу, а ссылаюсь на возможности редактора отчетов MS ACCESS
...
Рейтинг: 0 / 0
08.09.2010, 23:12
    #36837082
Как получить список имен полей таблицы в MS Access?
ПЕНСИОНЕРКАПатентовед,

поэтому, я не пишу программу, а ссылаюсь на возможности редактора отчетов MS ACCESS
Если вы осветите написанное выше несколько подробнее, то существует вероятность, что можно будет рассмотреть вопрос о включении вас в соавторы открытия.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
21.08.2018, 13:03
    #39690971
kulib
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить список имен полей таблицы в MS Access?
Патентовед,

Вот кое что
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Sub Test3() 'с одной таблицей через Recordset
Dim Tbl As Recordset, Fld As Field, Prp As Property
Set Tbl = CurrentDb.OpenRecordset("ListSellers_Daily")
  For Each Fld In Tbl.Fields
      MsgBox Fld.Properties("Name") 'Действие, которое нужно совершить с этим свойством
  Next Fld
End Sub
...
Рейтинг: 0 / 0
24.08.2018, 10:52
    #39692876
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить список имен полей таблицы в MS Access?
Можно так:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Public Sub Test()
    Dim rs As ADODB.Recordset
    Set rs = CurrentProject.Connection.OpenSchema(adSchemaColumns, Array(Empty, Empty, "tbBases"))
    With rs
        Do While Not .EOF
            Debug.Print !COLUMN_NAME, !Data_Type
            .MoveNext
        Loop
    End With
End Sub



Ну и полезно почитать в Help-e и интернете, собственно, про OpenSchema...
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как получить список имен полей таблицы в MS Access? / 19 сообщений из 19, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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