Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Хелпните! (Как сделать, чтобы в качестве параметра бралось значение из формы?) / 13 сообщений из 13, страница 1 из 1
12.11.2003, 16:28
    #32321809
Селиван
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хелпните! (Как сделать, чтобы в качестве параметра бралось значение из формы?)
Спецы! Помогите разобраться,плз, в такой ситуации.
Есть процедура на сервере:

CREATE PROCEDURE [dbo].[poisk]
@par as int AS
select * from fam where id=@par
GO

В аксесе проект ADP с формой, в которой есть поле, куда вводится id. Далее нажатием кнопки вызывается эта процедура. Как сделать, чтобы в качестве параметра бралось значение из формы?

Спасибо.
...
Рейтинг: 0 / 0
12.11.2003, 16:34
    #32321822
incold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хелпните! (Как сделать, чтобы в качестве параметра бралось значение из формы?)
Вот это смущает.
Далее нажатием кнопки вызывается эта процедура

Чего нужно-то сделать?
- форма с источником = процедуре

или попытка открыть через метод Docmd.Open
...
Рейтинг: 0 / 0
13.11.2003, 08:32
    #32322341
Селиван
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хелпните! (Как сделать, чтобы в качестве параметра бралось значение из формы?)
Виноват - форма, источник которой эта процедура.
...
Рейтинг: 0 / 0
13.11.2003, 08:45
    #32322349
Pavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хелпните! (Как сделать, чтобы в качестве параметра бралось значение из формы?)
Именно для такого случая существует свойство формы InputParameters (на закладке Данные). Запиши туда @par Int = ФормаСполем!Поле.
...
Рейтинг: 0 / 0
13.11.2003, 08:47
    #32322354
Pavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хелпните! (Как сделать, чтобы в качестве параметра бралось значение из формы?)
Виноват. @par Int = Forms!ФормаСполем!Поле.
...
Рейтинг: 0 / 0
13.11.2003, 09:01
    #32322372
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хелпните! (Как сделать, чтобы в качестве параметра бралось значение из формы?)
А можно ничего и не писать в ИнпутПараметерс. Достаточно назвать контролы на форме (можно их скрыть) так же как и параметры (без @). Акес сам их подхватит
...
Рейтинг: 0 / 0
13.11.2003, 09:09
    #32322379
Селиван
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хелпните! (Как сделать, чтобы в качестве параметра бралось значение из формы?)
Большое спасибо!
Работает.

Но мне хотелось знать, как выглядит процедура. Что-то типа:

Dim cm As ADODB.Command
Dim par As ADODB.Parametr

Set cm= New ADODB.Command
cm.CommandType=adCmdStoredProc
cm.CommandText="poisk"
Set p=cm.CreateParametr("par", adInteger,adParamInput,,...)

потом присвоить параметру значение поля из формы.
...
Рейтинг: 0 / 0
13.11.2003, 09:21
    #32322406
Pavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хелпните! (Как сделать, чтобы в качестве параметра бралось значение из формы?)
А куда ты будешь выводить результат процедуры?
...
Рейтинг: 0 / 0
13.11.2003, 09:26
    #32322417
Селиван
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хелпните! (Как сделать, чтобы в качестве параметра бралось значение из формы?)
Ну например так:

Dim rs As ADODB.Recordset
.....
.....
Set rs=cm.Execute
...
Рейтинг: 0 / 0
13.11.2003, 09:33
    #32322431
Pavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хелпните! (Как сделать, чтобы в качестве параметра бралось значение из формы?)
Dim cmd As ADODB.Command, rst As ADODB.Recordset
Set cmd = New ADODB.Command
cmd.ActiveConnection = CurrentProject.Connection
cmd.CommandText = "dbo.Specification_report"
cmd.CommandType = adCmdStoredProc
cmd.Parameters.Append cmd.CreateParameter("@Specification_id", adInteger, adParamInput, , 972)
cmd.Prepared = False
Set rst = cmd.Execute
...
Рейтинг: 0 / 0
13.11.2003, 09:35
    #32322433
Pavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хелпните! (Как сделать, чтобы в качестве параметра бралось значение из формы?)
972 - это я просто жестко вбил значение параметра, а в твоем случае
cmd.Parameters.Append cmd.CreateParameter("@Specification_id", adInteger, adParamInput, , Forms!ТвояФорма!ТвоеПоле!)
...
Рейтинг: 0 / 0
13.11.2003, 09:46
    #32322443
Pavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хелпните! (Как сделать, чтобы в качестве параметра бралось значение из формы?)
Или вот еще тестовый примерчик, тут рекордсет открывается немного по другому, с возможностью явного задания типа курсора и типа блокировки:

Dim cn As ADODB.Connection
Dim cmd As ADODB.Command
Dim rs As ADODB.Recordset
Dim t As Double
Dim i As Long

t = Timer

Set cn = New ADODB.Connection

cn.ConnectionString = "PROVIDER=SQLOLEDB.1;INTEGRATED SECURITY=SSPI;" & _
"PERSIST SECURITY INFO=FALSE;INITIAL CATALOG=Store;DATA SOURCE=NEWSERVER"

cn.Open

Set cmd = New ADODB.Command
cmd.ActiveConnection = cn
cmd.CommandText = "dbo.sp_testSelect"
cmd.CommandType = adCmdStoredProc
cmd.Parameters.Append cmd.CreateParameter("@id", adInteger, adParamInput)
cmd.Prepared = True

Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient

For i = 1 To 1000
cmd.Parameters(0) = i
'Debug.Print rs.State & "," & rs.Status
rs.Open cmd, , adOpenStatic, adLockReadOnly
If rs.RecordCount > 0 Then rs.MoveLast
rs.Close
Next

Set rs = Nothing
Set cmd = Nothing

cn.Close
Set cn = Nothing
...
Рейтинг: 0 / 0
13.11.2003, 14:16
    #32323030
Селиван
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хелпните! (Как сделать, чтобы в качестве параметра бралось значение из формы?)
Pavel,
огромное спасибо-теперь все понятно..
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Хелпните! (Как сделать, чтобы в качестве параметра бралось значение из формы?) / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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