Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / проблема со ссылками / 12 сообщений из 12, страница 1 из 1
22.01.2003, 16:00
    #32094727
A.Klimenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема со ссылками
Работаю с проектом Access.
Подсоединил базу SQL-7.
Создал представление, форму с выпадающим списком.
Пользователь выбирает значение из списка и оно подставляется
в условие отбора представления и формируется отчет.
Пробовал писать в представлении в условиях отбора:
a=[Forms]![Форма1]![Поле со списком],
пробовал в отчете в исочнике записей писать то же самое,
ничего не получается.
Хотя в обычной базе Access все это работает.
Не подскажите как быть?
Заранее благодарен.
Андрей.
...
Рейтинг: 0 / 0
22.01.2003, 16:16
    #32094734
ДиД
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема со ссылками
a=@[Forms]![Форма1]![Поле со списком],
...
Рейтинг: 0 / 0
22.01.2003, 16:16
    #32094735
Savik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема со ссылками
Источник - часом не запрос к серверу?
Попробуй вместо ссылки на поле формы подставить реальное значение,
т.е. не
'where a=[Forms]![Форма1]![Поле со списком] ...',
а 'where a=' +[Forms]![Форма1]![Поле со списком]+' ... '
...
Рейтинг: 0 / 0
22.01.2003, 17:40
    #32094834
Latuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема со ссылками
Ничего удивительного ведь запрос находится на сервере а значит ничего не знает ни о каких объектахна клиенте.
Здесь два пути :
1) Сформировать строку запроса в VBA таким образом чтобы [Forms]![Форма1]![Поле со списком] преобразовалось в константу например
str="SELECT поле1,поле2 WHERE поле3=" & [Forms]![Форма1]![Поле со списком]
[Поле со списком1].sourse=str

2) поставить источником строк хранимую процедуру или запрос с параметрами , при этом параметры должны называться так же как и ссылки в access и начинаться (как положено в T-SQL) с @ например
[Поле со списком1].sourse="SELECT поле1,поле2 WHERE поле3=@[Forms]![Форма1]![Поле со списком]" тогда Access вызовет соотв ХП или запрос передав в качестве параметров значения соотв объектов клиента

Второй способ быстрее
...
Рейтинг: 0 / 0
22.01.2003, 17:44
    #32094842
Latuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема со ссылками
SELECT поле1,поле2 WHERE поле3=

Читать как

SELECT поле1,поле2 FROM таблица1 WHERE поле3=
...
Рейтинг: 0 / 0
23.01.2003, 16:45
    #32095362
A.Klimenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема со ссылками
Пишу в источнике данных отчета
SELECT Поле1, Поле2 WHERE поле3=@[Forms]![Form1]![ПолеСоСписком]
Выдает запись
Must declare variable '@'.
Каки быть?
Подскажите если не трудно
...
Рейтинг: 0 / 0
23.01.2003, 18:14
    #32095454
Latuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема со ссылками
Мой совет относился к заполнению полей со списком и списков
Для Источников форм и отчетов параметры называй как хочеш а потом заполни свойство ВХОДНЫЕПАРАМЕТРЫ формы или отчета например

@BegData datetime = dtGetDateBeg(),@EndData datetime = dtGetDateEnd(),@Statuses tinyint = Forms![PL_Jurnal]!cboStatuses

где
@BegData,@EndData,@Statuses - параметры хранимой процедуры
dtGetDateBeg(),dtGetDateEnd() - функции VBA
Forms![PL_Jurnal]!cboStatuses - ссылка на открытую форму
datetime,tinyint - типы SQL для приведения типов (если типизацию не указать то все будет конвертится через varchar и не всегда верно особенно что касается datetime в случае полей со списком и списков где типизировать параметры нельзя приходится извращатся делая на строне клиента строку и переводить строку в дату насервере через CONVERT заранее зная формат вх строки)
...
Рейтинг: 0 / 0
23.01.2003, 18:16
    #32095456
AlexJuice
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема со ссылками
В источнике данных:

Код: plaintext
SELECT Поле1, Поле2 WHERE поле3=?


В параметре:

Код: plaintext
? int=[Forms]![Form1]![ПолеСоСписком] 


где int - тип нужного значения (SQL'-ный), т.е. int соответствует не Integer, a Long
...
Рейтинг: 0 / 0
23.01.2003, 18:20
    #32095459
vladK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема со ссылками
2Latuk:У меня от же трабл, и приминительно с спискам- Must declare @
Проблема в том, что что такое запрос с параметрами приминительно к проекту. Никогда оних не слышал. Это же обычные вьюхи сиквеля, разве нет?
...
Рейтинг: 0 / 0
24.01.2003, 10:14
    #32095697
ДиД
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема со ссылками
http://www.hiprog.com/access/default.asp?Chapter=113
вся инфа по adp
...
Рейтинг: 0 / 0
24.01.2003, 11:50
    #32095786
Latuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема со ссылками
>vladK Это же обычные вьюхи сиквеля, разве нет?

Не совсем. если поставить в источнике имя вьюхи то будет вьюха, а если SQL выражение то ото просто строка которую Access особам образом обработает и пошлет на сервер в несколько измененном виде. Практически это динамически формируемый запрос где параметры будут заменены на значения соотв объектов. Работает это медленнее и явл потенциальнымисточником ошибок. Так что лучше пользоватся ХП с именованными параметрами.
...
Рейтинг: 0 / 0
24.01.2003, 12:32
    #32095830
A.Klimenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема со ссылками
Спасибо всем за советы. Все получилось.
Подстаил в отчете
в источнике данных select представления с SQL, добавил туда WHERE a=?
и прописал в параметрах ссылку на форму
? datetime=[Forms]![Form1]![ПолеСоСписком].
Все работает.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / проблема со ссылками / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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