Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как вытащить в запрос поля таблицы/запроса?
 
 автор: Irena   (27.10.2006 в 15:04)
 
 

Если это возможно. Но уж очень бы надо!

  Ответить  
 
 автор: osmor   (27.10.2006 в 15:33)   личное сообщение
 
 

вопрос непонятен.
запрос и так "вытаскивает" поля таблицы...

  Ответить  
 
 автор: Irena   (27.10.2006 в 15:40)
 
 

Прошу прощения. Названия полей. А не данные.

  Ответить  
 
 автор: osmor   (27.10.2006 в 15:43)   личное сообщение
 
 

ACCESS какой?

  Ответить  
 
 автор: Irena   (27.10.2006 в 15:51)
 
 

2003, но хорошо бы оно сработало бы и на ХР

  Ответить  
 
 автор: osmor   (27.10.2006 в 15:51)   личное сообщение
 
 

для 2000 и выше

Public Function listFields(strNameTbl As String)
' выводит имена полей в указанной таблице или запросе
' запрос должет быть без параметров
Dim rst As ADODB.Recordset
Dim fld As ADODB.Field
Set rst = New ADODB.Recordset
rst.Open "select * from " & strNameTbl, CurrentProject.Connection, adOpenForwardOnly, adLockReadOnly
For Each fld In rst.Fields
Debug.Print fld.Name
Next
rst.Close
Set rst = Nothing

End Function


Для 97 для таблицы можно использовать
TableDef.fields
а для запросов:
QueryDef.Fields

  Ответить  
 
 автор: Irena   (27.10.2006 в 15:59)
 
 

Спасибо, но, боюсь, это не совсем то, что нужно. Мне надо не просто вытащить названия полей, но получить рекорсет, содержащий эти названия (потом по нему нужно делать цикл типа Do until... Loop). Такое возможно?

  Ответить  
 
 автор: Serge Gavrilov   (27.10.2006 в 16:02)   личное сообщение
 
 

вы и так можете делать цикл по свойству Fields (таблицы или запроса)

  Ответить  
 
 автор: osmor   (27.10.2006 в 16:05)   личное сообщение
 
 

опять не понял...
чем вас не устраивает
for each .... in .... ?
это как раз перебор всех названий полей....

  Ответить  
 
 автор: Irena   (27.10.2006 в 16:32)
 
 

Да вот с For each... in что-то не выходит то, что мне нужно.
Я пытаюсь новый рекордсет построить для вывода в Excel, и вот... на этом месте затыка получается.

  Ответить  
 
 автор: osmor   (27.10.2006 в 16:38)   личное сообщение
 
 

не кормите нас с чайной ложечки, пожалейте свое и чужое время, опишите задачу подробнее

  Ответить  
 
 автор: Irena   (27.10.2006 в 16:52)
 
 

Снова прошу прощения. Дано: есть результаты тестирования по годам. Собственно, тестирование идет по многим пунктам => есть таблица с ключевыми полями КодТестируемого, Год и n полями - пунктами тестирования (баллами по ним). Задача - вывести отчет с динамикой результатов по годам. Ну, в грубом приближении - таблица в Excel'e, первый столбец - ID тестируемого, дальше - пункт тестирования (ну пусть будет IQ) и в нем баллы по годам (2003,2004,2005,2006), следщ. пункт (вид теста) - то же самое...
Не знаю, получилось ли объяснить понятно?

  Ответить  
 
 автор: osmor   (27.10.2006 в 16:58)   личное сообщение
 
 

"дальше - пункт тестирования (ну пусть будет IQ) и в нем баллы по годам (2003,2004,2005,2006)"
вот это не совсем понятно.
не могли бы Вы сюда пристигнуть пример Excel таблицы которая должна быть на выходе с кусочком данных (не более 50 кбт)

  Ответить  
 
 автор: Irena   (27.10.2006 в 17:18)
16 Кб.
 
 

Да, конечно, пожалуйста - нечто вроде этого (см. аттачмент) в грубом приближении. Цифры "с потолка", т.е. могут быть любые целые, в том числе отрицательные, но дело, конечно, не в них... Полей (видов/пунктов теста) тоже будет не 4, а несколько десятков, для конкретного отчета будут выбираться конкретные виды теста пользователем на форме.

  Ответить  
 
 автор: osmor   (27.10.2006 в 17:27)   личное сообщение
 
 

я бы сделал так.
Выгнал в excel плоскую таблицу вида
ФИО ГОД ТЕСТ БАЛЛЫ

потом программно в EXCEL построил бы сводную таблицу по этим данным...
или использовал бы
http://hiprog.com/index.php?option=com_content&task=view&id=685

  Ответить  
 
 автор: osmor   (27.10.2006 в 18:12)   личное сообщение
 
 

если пришлете исходный запрос с куском данных на мыло, то к понедельнику постараюсь написать скрипт

  Ответить  
 
 автор: Irena   (30.10.2006 в 09:33)
 
 

Только сейчас снова вышла в сеть и увидела Ваше сообщение.

  Ответить  
 
 автор: osmor   (30.10.2006 в 10:09)   личное сообщение
 
 

Очень жаль.
предложение в силе, но со сроками ничего конкретного сказать не могу, точно не сегодня...
пишите в почту.

  Ответить  
 
 автор: Irena   (30.10.2006 в 12:28)
 
 

Большое спасибо. :)

  Ответить  
 
 автор: osmor   (30.10.2006 в 12:38)   личное сообщение
 
 

пока не за что

  Ответить  
 
 автор: Irena   (01.11.2006 в 10:44)
 
 

Уфф, все-таки получилось своими силами - через рекордсет. Вы были правы, оказалось возможно запрячь в одну упряжку For... Next с циклом по полям и Do While... Loop.
Еще раз большое спасибо!

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList