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

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

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

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


Но только это уж не SQL....
...
Рейтинг: 0 / 0
Как получить список имен полей таблицы в MS Access?
    #32104084
ДиД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
самый простой способ: поле со списком есть свойство "тип источника строк" можно выбрать "список полей"
или, если не подойдет, вот такой вариант
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
Как получить список имен полей таблицы в MS Access?
    #32104399
ProfSD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получается что получить из Microsoft Access поля через SQL нельзя.
Зато получить их через обектную модель труда не представляет.
...
Рейтинг: 0 / 0
Как получить список имен полей таблицы в MS Access?
    #32104427
Фотография Savik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что значит через SQL?

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

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

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

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

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

Select MyFunc(Table, i )

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

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

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

Позвольте продолжить тему почти 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
Как получить список имен полей таблицы в MS Access?
    #36836429
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Alexei GennadevichНу и естественно ничего не работает.
Естественно. Функция возвращает коллекцию, а Вы это пытаетесь занести в строковую переменную.
...
Рейтинг: 0 / 0
Как получить список имен полей таблицы в MS Access?
    #36837003
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProfSDНужно выпихнуть в DataList список полей для своего конструктора отчетов.

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

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

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

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

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

Вот кое что
Код: 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
Как получить список имен полей таблицы в MS Access?
    #39692876
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно так:

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


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