Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / "Визуализация" рекордсета / 25 сообщений из 46, страница 1 из 2
03.11.2003, 06:59
    #32312964
ayv
ayv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Визуализация" рекордсета
Есть таблица с большим количеством полей, допустим заказчики. Есть поле РЕГИОН.
Нужно подготовить отчет Заказчики по регионам.
На сервере создана ХП с параметром @Region
Используя ADO, вызываю ХП и передаю требуемое значение параметра
Получаю рекордсет (все работает правильно),но как мне его увидеть в табличной форме?
Если создавать врем.таблицу, идти по строкам рс и создавать новый рс1
с INSERT, то строка SQL становится просто огромной, учитывая большое
количество полей
Может быть есть более "умный способ"?
...
Рейтинг: 0 / 0
03.11.2003, 07:05
    #32312965
Pavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Визуализация" рекордсета
А в чем проблема то? открывай форму, в качестве источника записей которой твоя ХП в режиме таблицы, и все. Или тебе просто неохота прописывать все поля?
...
Рейтинг: 0 / 0
03.11.2003, 07:06
    #32312966
Pavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Визуализация" рекордсета
Не очень хорошо составил предложение. Имеется ввиду открывай форму в режиме таблицы.
...
Рейтинг: 0 / 0
03.11.2003, 14:44
    #32313579
ayv
ayv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Визуализация" рекордсета
To Pavel:
Не получается
Механизм такой. В "поисковой" форме я выбираю нужный регион, жму кнопку
"Отбор", которая выполняет ХП на сервере с передачей параметра Регион
Возвращается Рекордсет.
А куда его воткнуть, не соображу ( сейчас наверное пойдут импровизации на последнюю фразу -)))
Сделал ленточную форму, открыл ее и пытаюсь в цикле по рекордсету
заполнить ее.
Все честно работает, но весь рс в одну строку (т.е. остается толька последняя
запись из РС)
...
Рейтинг: 0 / 0
03.11.2003, 15:11
    #32313620
Hummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Визуализация" рекордсета
У формы есть сов-во: RecordSource - туда и пихать хранимую.
...
Рейтинг: 0 / 0
03.11.2003, 15:27
    #32313639
ayv
ayv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Визуализация" рекордсета
А как это свойство задать программно?
Дело в том что у меня в зависимости от выбора пользователя
запускаются разные ХП
Хорошо бы перед открытием формы указать, что источником строк является рекордсет
Можно?
Если да, то как?
...
Рейтинг: 0 / 0
03.11.2003, 15:35
    #32313656
Latuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Визуализация" рекордсета
В чем проблемма то ?
У формы источником может быть Recordset.
Set Me.Recordset = MyADODBRecordset

В принципе нет проблем и в RecordSource загнать
Делаеш Public VB фукцию и присваеваеш точто она возвращает в строке входящих параметров.
...
Рейтинг: 0 / 0
03.11.2003, 15:50
    #32313687
ayv
ayv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Визуализация" рекордсета
Почти хорошо
----
Вот фрагмент
----

docmd.OpenForm "Forma"
Set Forms!Forma.Recordset=rs
While (not rs.EOF)
Forms!Forma.ID_ORG=rs!ID_ORG
............
rs.MoveNext
Wend
----
Заполняется вся ленточная форма, но запись всегда одна и та же
Где косяк?

-((((
...
Рейтинг: 0 / 0
03.11.2003, 15:50
    #32313690
Hummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Визуализация" рекордсета
2 Latuk
А не проще ли написать:
Me.RecordSource = "Exec MyStoredProcedure" & и фигова туча моих параметров.
Это вместо функции.

2 ayv
If user="Пупкин" Then
strSQL = "Exec MyStoredProcedure" & и фигова туча моих параметров
Else
strSQL = "Exec MyStoredProcedure_ALL" & и фигова туча моих параметров
End If

Это фигня, то что я написал, потому что процедура должна быть одна, на вхзод ей имя пользователя, а потом уже проверки в процедуре, но не на клиенте:)
...
Рейтинг: 0 / 0
03.11.2003, 15:52
    #32313695
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Визуализация" рекордсета
Этот цикл засовывает в указанное поле в текущей записи формы все значения последовательно из всех записей рекордсета.
...
Рейтинг: 0 / 0
03.11.2003, 15:55
    #32313705
Hummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Визуализация" рекордсета
2 ayv
А вот теперь картина маслом - ХП возвращает тысяч n-дцать записей и мы с барабаном на шее и с шаманским бубном бегаеим по этому рекордсету и заполняем форму:)
Ура, товарищи:)

Вот где косяк: Forms!Forma.ID_ORG=rs!ID_ORG

ТАК ДЕЛАТЬ НЕЛЬЗЯ В ПРИНЦИПЕ.
...
Рейтинг: 0 / 0
03.11.2003, 15:57
    #32313711
ayv
ayv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Визуализация" рекордсета
Подскажите, пожалуйста, как?
...
Рейтинг: 0 / 0
03.11.2003, 15:57
    #32313713
Hummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Визуализация" рекордсета
2 Владимир Саныч
Он присваивает последнее значение из рекордсета, а не все. Бежит по рекордсету и присваивает текущуюзапись - форма оттображает в итоге последнюю запись из рекордсета.
...
Рейтинг: 0 / 0
03.11.2003, 15:58
    #32313714
Hummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Визуализация" рекордсета
Мне кажется, что я уже писал про RecordSource.
...
Рейтинг: 0 / 0
03.11.2003, 16:00
    #32313716
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Визуализация" рекордсета
2 Hummer:

Разумеется, после цикла остается последнее из занесенных значений.
...
Рейтинг: 0 / 0
03.11.2003, 16:03
    #32313725
Hummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Визуализация" рекордсета
2 Владимир Саныч
Не внимательно прочитал Ваш ответ. Извините:)
...
Рейтинг: 0 / 0
03.11.2003, 16:23
    #32313766
ayv
ayv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Визуализация" рекордсета
При попытке
Me.RecordSource = "Exec MyStoredProcedure" & Регион

"Не могу найти ХП MyStoredProcedureРегион"
А писать весь запрос не хочется, так как теоретически параметров может быть много
...
Рейтинг: 0 / 0
03.11.2003, 16:30
    #32313783
Hummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Визуализация" рекордсета
"Не могу найти ХП MyStoredProcedureРегион"

Ну я просто телепат - угадал название процедуры:)

Выполняется конкотенация строки - поэтому после "&" нужно указывать значение переменной, которое мы хотим передать в качестве параметра нашей ХП.
...
Рейтинг: 0 / 0
03.11.2003, 16:34
    #32313791
ayv
ayv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Визуализация" рекордсета
а Регион и есть значение переменной
конкретно
"Не могу найти ХП MyStoredProcedure54"
А вообще-то процедура называется по другому, но все равно здорово
...
Рейтинг: 0 / 0
03.11.2003, 16:37
    #32313799
Hummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Визуализация" рекордсета
Ошибся малость:
Me.RecordSource = "Exec MyStoredProcedure " & Регион

Можно было подумать немного:)
...
Рейтинг: 0 / 0
03.11.2003, 16:42
    #32313808
ayv
ayv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Визуализация" рекордсета
Мужики, извините за назойливость
VBA занимаюсь всего как месяц, стараюсь лишний раз
не клянчить помощи, пытаюсь найти сам, но тут
вопрос для меня где то даже концептуальный
Сначала я делал так
1. создавал рс на основе SELECT
2. создавал рс1 на основе INSERT во вр. таблицу значений в цикле по рс
3. затем выводил на экран

но думаю, это слишком примитивно, тем более, что INSERT c его
синтаксисом при большом количестве выводимых полей становится кошмаром
создать рс просто, а вот увидеть его в любой форме, хоть в таблице
не просекаю
-((
...
Рейтинг: 0 / 0
03.11.2003, 16:49
    #32313825
Hummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Визуализация" рекордсета
Если вернуться к постановке задачи - то способ её решения уже дан. В источник данных ЛЮБОЙ формы в коде прописываем командную сторку (Select, Exec бла-бла-бла).
Никакой назойливости нет:)
...
Рейтинг: 0 / 0
03.11.2003, 16:50
    #32313827
ayv
ayv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Визуализация" рекордсета
Проблема таже
docmd.OpenForm "Forma"
Set Forms!Forma.RecordSource="Exec XP " & intReg
А как ленточную форму заполнить строками из запроса?
...
Рейтинг: 0 / 0
03.11.2003, 16:54
    #32313833
ayv
ayv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Визуализация" рекордсета
какой конструкцией мне сделать присваивание значений элементов формы?
...
Рейтинг: 0 / 0
03.11.2003, 16:56
    #32313837
Hummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Визуализация" рекордсета
Уважаемый - если после этой строчки
Forms!Forma.RecordSource="Exec XP " & intReg
ленточная форма Forma не отображает данные, значит ХП не вернула НИЧЕГО(если не стоит On error resume next) и сервер тоже не выдал ошибку.

SET НЕ НУЖЕН.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / "Визуализация" рекордсета / 25 сообщений из 46, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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