Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 31.05.2011
Сообщений: 16

Запрос к серверу не считывает параметр из формы

16.08.2011, 19:12. Показов 4258. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам

Доброго время суток!
Пожалуйста, подскажите как создать запрос к серверу (из Access) c переменной, которая считывается с формы

Что-то вроде
SELECT N_Table.[Код]
FROM N_Table
Where [КОД]=Forms!......- не считывает

Как сделать чтобы в запросе к серверу каждый раз автоматически подставлялся нужный код (из формы) для выборки.
Чтобы в ответ получить не всю таблицу, а только нужную часть
Заранее спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.08.2011, 19:12
Ответы с готовыми решениями:

Как передать параметр поля формы в запрос?
Люди, подскажите плз, как мне правильно передать значение поля формы в запрос? пробовал . но оно все равно спрашивает его при рефреше :(

Не считывает параметр с реестра
Добрый день. Есть код: //--------------------------------------------------------------------------- #include <vcl.h> ...

Не считывает данные textBox из другой формы
Добрый день. Ошибок нет, только вот не читает textBox-ы... В одной форме (авторизация): namespace WindowsFormsApplication1 { ...

9
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
16.08.2011, 21:30
попробуй создать макрос на открытие формы с аргументами:"Faktoria; Форма; ; ="[id]=" & [Id]; ; Обычное"
где Faktoria - это открываемая форма, Форма - вид открываемой формы, [id] - наименование поля в конечной форме, [Id] - поле со списком начальной формы, ( ; Обычное) - не помню для чего но это необходимо.
А теперь проще, берешь форму, вставляешь в нее поле со списком, переименовываешь его дабы знать что с чем слогать, и ставишь кнопку. Далее по мастеру выбираешь открыть форму, связать по полям, выбираешь нужное и... готово!
Пардон не правильно понял, чуть по точнее раскажи что к чему, а луше пример!
0
0 / 0 / 0
Регистрация: 31.05.2011
Сообщений: 16
16.08.2011, 22:58  [ТС]
Ситуация в том, что таблица с сервера переносится полностью и на стороне клиента выполняется выборка.Требуется много времени на выполнение такого запроса.Если выборка будет происходить на сервере,допустим как хранимая процедура и клиенту пересылаться уже отобранные данные это будет выполнятся намного быстрее(что сэкономит рабочее время).Нужно напрямую обратится к серверу (T-SQL) Но я не знаю как передать входной параметр для выборки,который выводится на форме(каждый раз в запросе к серверу прописывать вручную,нереально)Необходимо автоматизировать.
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
16.08.2011, 23:52
Самый простой выход создать дополнительную табличку, в которой всегда будет только одна запись (одна строчка) которая будет полем сравнения при условии отбора. Иначе тебе не ввести поле в TSQL.
0
0 / 0 / 0
Регистрация: 31.05.2011
Сообщений: 16
17.08.2011, 12:06  [ТС]
Но если я каждому пользователю создам отдельную табличку, которая будет хранится на сервере...то получится что на сервере будет более 300 таблиц....Если подключить всех к одной, то, скорее всего,возникнет конфликт при одновременном выполнении.
Может для каждого пользователя, при его входе создавать временную таблицу?Но, насколько я знаю, это не лучший вариант.Да и практики в создании врем табл у меня нет.Может через VBA как-нибудь возможно передать в запрос к серверу изменяемый параметр?
Пожалуйста, подскажите!!!Очень надеюсь на совет специалиста в данной области.
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
18.08.2011, 02:21
С хранимыми процедурами не работал, а вот с запросами - да. Решение с запросом тут есть очень даже рядом.
Поле со списком для поиска по фамилии
0
0 / 0 / 0
Регистрация: 31.05.2011
Сообщений: 16
18.08.2011, 10:31  [ТС]
Я уже пошла именно этим путем.
Создала функцию в модуле.Начало положено,хоть какой-то плюс,теперь параметр определяется программно.Но проблема возникла в следующем: при запросе к серверу код SQL не обрабатывается,а сразу отправляется на сервер...там начинает его считывать и пишет что не определен Parametr_()-оно и ясно, ведь он определен только в Access....Необходимо чтобы в Access программно открывался данный запрос, вместо параметра ставилось нужное число и только после этого отправлялся на сервер-там происходила обработка-выбирались нужные строки-присылались пользователю-сохранялись в таблице...и все это программно.Подскажите как это прописать на VBA.
0
3357 / 1776 / 83
Регистрация: 05.08.2010
Сообщений: 4,471
18.08.2011, 12:58
Сервер ничего не знает о Ваших формах.
Если запрос запускаете из VBA, то задайте переменной значение поля на форме.А уже в сам запрос подставляйте переменную
Например, как-от так:
Visual Basic
1
2
3
4
5
6
7
8
Private Sub Form_Load()
Dim strSQL as string
a = Forms!Форма!ПолеНаФорме
strSQL = " SELECT N_Table.[Код] " & _
" FROM N_Table " & _
" Where [КОД]= " & a & " "
Me.RecordSource = strSQL
End Sub
Если же просто запросом, то создайте в модуле функцию и используйте ее в запросе..
0
0 / 0 / 0
Регистрация: 31.05.2011
Сообщений: 16
18.08.2011, 14:55  [ТС]
Agapov_stas, надеюсь,Вас не затруднит немного мне помочь.
На SQL сервере я создала хранимую процедуру с 2-мя входными параметрами, которые необходимо брать с формы ACCESS.
Следовательно, необходимо из Access отправлять запрос к серверу на запуск данной процедуры и параметры.
Если я правильно понимаю,это реально реализовать таким образом:
-Нажимается кнопка и запускаестя код VBA
-Формируется нужная SQL строка что-то вроде того:
a = [Forms]![Товары].[Поле1]
d=[Forms]![Товары].[Поле2]
strSQL = "EXECUTE dbo.SP_TEST @КОD="'a'", @Filial="'b'""
В итоге результат её выполнения должен получится следующий
strSQL = "EXECUTE dbo.SP_TEST @КОD='10', @Filial='Самара'
-Это строка сохраняется как новый запрос под именем "Запрос1" к серверу (строка подключения, допустим что такая:dsn = "ODBC; DSN=.....;UID= ....; DATABASE=.....Trusted_Connection=Yes")
-Запускается запрос, на создание таблицы все строки Запрос1
(SELECT INTO Таблица FROM Запрос1)
-Удалить Запрос1(Чтобы не возникло ошибки при новом нажатии кнопки иначе будет ругаться что Запрос1 существует)
-Далее работаем только с полученной таблицей

Может я в чем-то не права?Тогда поправьте меня, пожалуйста...
И если Вам не сложно черканите примерный код VBA(раньше мне не приходилось писать на данном языке)
Заранее спасибо.
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
19.08.2011, 02:51
Цитата Сообщение от Зябра Посмотреть сообщение
И если Вам не сложно черканите примерный код VBA
Вот не моё, посмотрите:

Запрос к серверу указан в источнике RecordSource формы "Форма"
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Dim MyDb As Database, MyQ As QueryDef
Dim strsql As String
  
Set MyDb = CurrentDb()
Set MyQ = MyDb.QueryDefs("ЗапросКСерверу")
 
strsql = "exec имя_ХП '" & Me.ПараметрТипСтрока & "'"
         
MyQ.SQL = strsql
MyQ.ReturnsRecords = True
 
DoCmd.OpenForm "Форма"
Ещё:

Если я правильно понял вопрос то он звучит так
как из Access MDB запустить хранимую процедуру с параметрами.

ответ: используя ADO
Dim MYConnection As New adodb.Connection

'пример подключения
MYConnection.Open "Provider=MSDASQLSN=LocalServer;SERVER =({local});UID=sa;PWD=;WSID={ИМЯ_компьют ера}ATABASE={ИМЯ_БАЗЫ_ДАННЫХ};LANGUAGE =русский;QueryLogTime=Yes"
'{УКАЗАННОЕ В ТАКИХ СКОБКАХ ЗАМЕНИТЬ НА СВОИ ЗНАЧЕНИЯ}

Dim cmd As New adodb.Command
cmd.ActiveConnection = MYConnection
cmd.CommandText = "sp_daystatus" 'насколько мне известно параметры можно добавить прямо сюда после пробела, через зпт
cmd.CommandType = adCmdStoredProc
'Возвращаемые параметры можно добавить так
cmd.Parameters.Append cmd.CreateParameter("@data", adInteger, adParamInputOutput)
cmd.Parameters(0) = MYintegervar
cmd.Execute
Myvar = cmd.Parameters(0)
Set cmd = Nothing
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.08.2011, 02:51
Помогаю со студенческими работами здесь

Запрос к серверу
добрый день. задумал переехать на MS SQL сервер, прочитал в какой-то другой теме, что для корректной и быстрой работы запросы необходимо...

запрос к серверу
вот функция function zapr(s, callback) { var req = new XMLHttpRequest(); req.open('GET', 'getinf.php?coord=' + s, false); ...

Запрос к серверу на форме
Добрый день, подскажите пожалуйста можно ли как то редактировать данные на подчиненной форме? Есть подчиненная форма которая берет данные...

GET запрос от клиента серверу
Есть сервер написан на ASP.NET Web API. У него есть метод, который возвращает json при get запросе: localhost/api/values . Есть клиент,...

Не проходит запрос к серверу
Вот код... не могу понять.. Чарлес не ловить эти запросы! import vk.APIConnection import flash.display.Loader; import...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru