Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/55: Рейтинг темы: голосов - 55, средняя оценка - 4.95
kafka
1

Цикл на поля таблицы

02.08.2006, 03:25. Показов 10163. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, подскажите пжт:
Есть таблица , одно поле - название городов (количество всегда разное)
Как написать следующий код:
Перебрать все значения таблицы (цикл) и по каждому значению сформировать выборку (параметрический запрос)
Если есть мысли подскажите пжт, я уже голову сломала
Ольга.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.08.2006, 03:25
Ответы с готовыми решениями:

Заполнить значение поля таблицы из другого поля этой же таблицы, но предыдущей записи
У меня есть таблица кассовая книга. В ней содержатся данные по каждому рабочему дню: Дата, остаток...

Обновление одного поля таблицы, при заполнении поля в другой таблице
Друзья помогите новичку! Есть две таблицы -продажа(id продажи, сумма продажи) -скидка(id скидки,...

Ошибка при создании поля таблицы и указании расположения поля в таблице
Пытаюсь создать поле с указанием его расположения в таблице. Пока безрезультатно ALTER TABLE AAA...

Данные из одного поля должны влиять на то, из какой таблицы будет выбираться значение другого поля
Допустим, что у меня есть форма. на ней 2 поля: дисциплина и тема занятия. я выбрал значение поля...

10
slamer
02.08.2006, 13:58 2
Это можно сделать разными способами, например через VBA Recordset или через T-SQL Cursor (SQL Server).
По поводу T-SQL Cursor - это к спецам по SQL.
Через VBA делается так:
(Используйте DAO для связи с данными JET (напр. ACCESS MDB) или ADODB для SQL Server )
Visual Basic
1
2
3
4
5
6
7
8
Dim rst As DAO.Recordset
Set rst=CurrentDb.OpenRecordset("Select * From [Ваша таблица]") 
Do While Not rst.EOF
     DoCmd.RunSQL("Ваш параметризированный запрос для каждого города")
      rst.MoveNext
Loop 
rst.Close
Set rst = Nothing
kafka
02.08.2006, 15:38 3
-- DoCmd.RunSQL("Ваш параметризированный запрос для каждого города") -- отсюда по подробней пожалуйста
Не получается
Заранее спасибо, Оля
slamer
02.08.2006, 16:31 4
Все просто:
DoCmd.RunSql - выполняет sql запрос в виде строки.
После заполнения рекордсета (rst) запускаем цикл (Do wile Not rst.eof) по его записям (пока не кончатся двигаемся на следующую - rst.movenext).
В цикле для каждой записи rst выполняем Вашу выборку (DoCmd.RunSql("Select [Что то] From [Откуда то] Where [Условия выборки]")), в которую в качестве параметров можно подставлять поля нашего rst. (Можно обращаться как по имени - rst.fields![имяполя], так и по индексу - rst.fields(номерполя)).
Т.е. должно получиться нечто:
Visual Basic
1
DoCmd.RunSql ("Select [что] From [откуда] Where [откуда].[город] = " & rst.fields![город])
kafka
02.08.2006, 17:59 5
Visual Basic
1
DoCmd.RunSQL ("SELECT [Табл1].поле1, [Табл1].поле2, [Табл1].поле3, [Табл1].поле4, [Табл1].поле5, [Табл1].поле6 FROM [Табл1] WHERE [Табл1].поле1 = " & rst.Fields![поле1])
Пишет ошибку:
Ошибка синтаксиса (пропущен оператор) в выражении запроса

Ну что я не так делаю?
slamer
02.08.2006, 19:15 6
Все верно, поторопился чуть-чуть, так не получится.
Дело в том, что RunSQL понимает только action query, т.е. простой Select не подходит.
А что нужно делать с получаемыми данными?
kafka
02.08.2006, 21:57 7
Объясняю, идея такая:
есть запрос к большой таблицы на выборку городов (предприятий) - эта выборка сохраняется в отдельной таблице, количество городов всегда разное
затем для каждого города необходимо сформировать отчет и сохранить его в Excel
у меня реализовано это путем выбора каждого города в форме и формирования (по нажатию клавиши) для выбранного города параметрического запроса
я хочу завязать этот процесс в цикл, чтобы не самой сидеть перебирать эти города, а нажать кнопку и сформировать все отчеты для каждого города
городов много - бывает до 400, поэтому утомительно
Прошу помочь
Заранее спасибо, Оля
118 / 118 / 10
Регистрация: 12.05.2010
Сообщений: 1,207
03.08.2006, 16:27 8
Более продуктивно будет если Вы вышлите часть своей базы данных (требуемые таблицы) или хотя бы опишите структуру этих таблиц, приведёте пример данных и ожидаемый результат...

Может быть, Вам временная таблица и не будет нужна...
0
kafka
03.08.2006, 18:28 9
Ок, попробую так:
1. есть таблица (выгрузка из другой программы в Access), структура:
- наименование предприятия (город)
- кол-во и сумма заказа
- кол-во и сумма исполнения и т.д.
2. необходимо делать отчет для каждого предприятия в отдельности в той же структуре и сохранять в отдельный Exl-файл
3. сделала через форму: выбор предприятия --> формирования отчета
4. надо сделать без выбора в форме, а чтобы машина сама брала нужный параметр и формировала и сохраняла отчет
6. предприятий всегда разное количество
С уважением, Оля.
slamer
03.08.2006, 18:51 10
Или кратко опишите что собой представляет Ваш отчет - просто набор данных записываете в таблицу и конвертируете ее в EXCEL или создаете отчет ACCESS?
118 / 118 / 10
Регистрация: 12.05.2010
Сообщений: 1,207
03.08.2006, 19:09 11
Не понятно: Вы никак не обрабатываете данные, а только отбираете каждую очередную запись из таблицы для построения отчёта? Тогда из MS Access открываете таблицу на чтение и перебираете её по записям:
Visual Basic
1
2
3
4
5
6
7
8
Dim table As Recordset
  Set table = CurrentDb.OpenRecordset("Таблица", dbOpenDynaset)
  While not table.EOf      'до конца таблицы
    ЯчейкаExcel1 = table!Поле1Таблицы
    ЯчейкаExcel2 = table!Поле2Таблицы
    table.MoveNext         'перейти к след. записи
  Wend
  End With
А может быть Вам здесь и MS Access не нужен - это же можно сделать и прямо из MS Excel, переписав CurrentDb через Application.WorkSpace и имя таблицы - через запрос к известной базе данных?
0
03.08.2006, 19:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.08.2006, 19:09
Помогаю со студенческими работами здесь

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

Ограничить значение поля таблицы значениями полей другой таблицы
У меня в БД есть две таблицы: 1) Дома. Поля: id, дата постройки, дата сноса; 2) Жильцы. Поля: id,...

Сравнение вычисляемого поля и поля из таблицы БД
Вот условие: Считая, что показатели даны на текущий год, а ежегодная добыча будет возрастать на...

Суммирование поля таблицы из поля формы
Добрый Всем день. На форме запрос ,который делает выборку из табл1 по дате,введенной в поле дата....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru