![]() |
|
Модераторы: Akina |
![]()
|
|
| _Dream |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 4.11.2006 Где: Там Репутация: нет Всего: нет |
проект: приложение - access2003, БД - MSSQL2002
В базе есть хранимая процедура возвращающая('1','2','3') надо на форме в аксесе подключить ее как "источник строк" для колонки(если я правильно понимаю это и есть значения комбика). подскажите пожалуйста как это вообще можно реализовать? как сделать чтобы я увидел эту процедуру в аксесе? в поле "источник строк" я вижу запросы созданные в аксесе. возможно надо создать свой запрос. но как запросом вернуть данные возвращаемые хранимой процедурой? возможно надо сделать это средствами VBasic. если да то как? спасибо. Это сообщение отредактировал(а) _Dream - 6.5.2008, 16:27 --------------------
Noone dies a virgin. Life screws us all... |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Нужно написать собственную Public-функцию в модуле (не модуле формы или отчета!), которая открывает ADO Connection на CurrentDB, выдергивает из хранимки данные и возвращает их. Эт функцию нужно использовать в запросе для получения там результатов работы хранимки.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| _Dream |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 4.11.2006 Где: Там Репутация: нет Всего: нет |
сорри но мало что понятно(по сути в 1е сталкиваюсь вообще с аксесоми и VB).
есть грид на форме(датасорс для него просто 1на из таблиц в БД) есть хранимая процедура(MSSQL) в БД(принимает значение "поляХ" из таблицы являющейся датасорсом для грида на форме) надо создать запрос в Access такой чтобы он возвращал рузультат хранимой процедуры. попробовал создать "запрос SQL -> запрос к серверу" где прописал "EXEC storageProcedureName" возникает вопрос - правильный ли это путь и как можно передать туда входной параметр. пока что после указания моего access-запроса в качестве источника строк в выпадющем списке вместо списка значения показывается только 1но значение - название access-запроса. заранее спасибо --------------------
Noone dies a virgin. Life screws us all... |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Нет. Соответственно никак. Путь описан выше. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| _Dream |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 4.11.2006 Где: Там Репутация: нет Всего: нет |
просто подумал что можно передавать входной параметр на событии типа перехода между строк(например GotFocus - когда кликаем в комбик срабатывает событие параметр бьерется из текущей строки и соотв. запрс выполняется как надо.)
с другой стороны не совсем понятно как мне поможет функция. ведь опять же процедура по сути должна вызываться каждый раз при переходе на новую строку. --------------------
Noone dies a virgin. Life screws us all... |
|||
|
||||
| bopoha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
Если у вас форма ленточная и вы хотите видеть для каждой записи свои данные в поле со списком, то ничего не выйдет. Т.к. для всех записей поле со списком содержит одинаковый набор строк. Тут вариант только один - простая форма. И на событии Current Record можно менять sql запрос к серверу и подсовывать его полю со списком. Не элегантно, но будет работать.
Более элегантно будет реализовать функцию заполнения Поля со списком. Справка: The next example uses a static array to store the names of the databases in the current directory. To call this function, enter ListMDBs as the RowSourceType property setting and leave the RowSource property setting blank.
|
|||
|
||||
| Akina |
|
||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Делаем функцию типа
и далее уже
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
| _Dream |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 4.11.2006 Где: Там Репутация: нет Всего: нет |
сделал так но возникла одна сложность. чтоб настроить запрос к серверу необходимо настроить DSN и каждый раз на событии его явно! указывать. не смог это обойти вствив в свойства запроса к серверу(описание) ODBC;DRIVER={sql server};DATABASE="DBName";SERVER="DB IP";UID="login";PWD="password";Trusted_Connection=No;DBPrompt_NoPrompt все равно требует явного указания DSN.. что я сделал не так? 2Akina. Не совсем понял. то есть функция возвращает резалтСет некий а уже этот запрос
--------------------
Noone dies a virgin. Life screws us all... |
||||
|
|||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Нет. Функция возвращает ОДНО значение. Для конкретной записи результирующего набора выполняется хранимка, и получается вычисленное для этой записи значение поля.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| bopoha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
У запроса пишем: ODBC;DSN=имя. DSN созадем програмно. У Access для этого есть спец фукнция. Сейчас не помню, могу дома глянуть, если нужно. Так намного лучше. Иначе можно запарится меняя пароль или пользователя. P.S. Могу глянуть строку подключения и без DSN. |
|||
|
||||
| _Dream |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 4.11.2006 Где: Там Репутация: нет Всего: нет |
было бы здорово Добавлено через 3 минуты и 6 секунд
не уверен что понимаю вас. ведь моя хранимка возвращает список значений(который я пытаюсь установить как источник строк для комбика) а не одно значение. я сделал в принципе но остается проблема с ДСН. --------------------
Noone dies a virgin. Life screws us all... |
||||
|
|||||
| bopoha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
Создать DSN можно при помощи функции RegisterDatabase.
Если хочется без DSN, то необходимо использовать библиотеку ADO. А это только програмно. DAO (и хранимые запросы) всегда требуют DSN. Тут можно посмотреть на форматы строк подключения к разным серверам для разных библиотек доступа к данным: http://www.codeproject.com/database/connec...LE%20DB%20MySQL http://www.connectionstrings.com/ |
|||
|
||||
![]()
|
| Правила форума "MS Access" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MS Access | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |