|
|
|
Хелпните! (Как сделать, чтобы в качестве параметра бралось значение из формы?)
|
|||
|---|---|---|---|
|
#18+
Спецы! Помогите разобраться,плз, в такой ситуации. Есть процедура на сервере: CREATE PROCEDURE [dbo].[poisk] @par as int AS select * from fam where id=@par GO В аксесе проект ADP с формой, в которой есть поле, куда вводится id. Далее нажатием кнопки вызывается эта процедура. Как сделать, чтобы в качестве параметра бралось значение из формы? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2003, 16:28 |
|
||
|
Хелпните! (Как сделать, чтобы в качестве параметра бралось значение из формы?)
|
|||
|---|---|---|---|
|
#18+
Вот это смущает. Далее нажатием кнопки вызывается эта процедура Чего нужно-то сделать? - форма с источником = процедуре или попытка открыть через метод Docmd.Open ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2003, 16:34 |
|
||
|
Хелпните! (Как сделать, чтобы в качестве параметра бралось значение из формы?)
|
|||
|---|---|---|---|
|
#18+
Виноват - форма, источник которой эта процедура. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2003, 08:32 |
|
||
|
Хелпните! (Как сделать, чтобы в качестве параметра бралось значение из формы?)
|
|||
|---|---|---|---|
|
#18+
Именно для такого случая существует свойство формы InputParameters (на закладке Данные). Запиши туда @par Int = ФормаСполем!Поле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2003, 08:45 |
|
||
|
Хелпните! (Как сделать, чтобы в качестве параметра бралось значение из формы?)
|
|||
|---|---|---|---|
|
#18+
Виноват. @par Int = Forms!ФормаСполем!Поле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2003, 08:47 |
|
||
|
Хелпните! (Как сделать, чтобы в качестве параметра бралось значение из формы?)
|
|||
|---|---|---|---|
|
#18+
А можно ничего и не писать в ИнпутПараметерс. Достаточно назвать контролы на форме (можно их скрыть) так же как и параметры (без @). Акес сам их подхватит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2003, 09:01 |
|
||
|
Хелпните! (Как сделать, чтобы в качестве параметра бралось значение из формы?)
|
|||
|---|---|---|---|
|
#18+
Большое спасибо! Работает. Но мне хотелось знать, как выглядит процедура. Что-то типа: 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,,...) потом присвоить параметру значение поля из формы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2003, 09:09 |
|
||
|
Хелпните! (Как сделать, чтобы в качестве параметра бралось значение из формы?)
|
|||
|---|---|---|---|
|
#18+
А куда ты будешь выводить результат процедуры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2003, 09:21 |
|
||
|
Хелпните! (Как сделать, чтобы в качестве параметра бралось значение из формы?)
|
|||
|---|---|---|---|
|
#18+
Ну например так: Dim rs As ADODB.Recordset ..... ..... Set rs=cm.Execute ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2003, 09:26 |
|
||
|
Хелпните! (Как сделать, чтобы в качестве параметра бралось значение из формы?)
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2003, 09:33 |
|
||
|
Хелпните! (Как сделать, чтобы в качестве параметра бралось значение из формы?)
|
|||
|---|---|---|---|
|
#18+
972 - это я просто жестко вбил значение параметра, а в твоем случае cmd.Parameters.Append cmd.CreateParameter("@Specification_id", adInteger, adParamInput, , Forms!ТвояФорма!ТвоеПоле!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2003, 09:35 |
|
||
|
Хелпните! (Как сделать, чтобы в качестве параметра бралось значение из формы?)
|
|||
|---|---|---|---|
|
#18+
Или вот еще тестовый примерчик, тут рекордсет открывается немного по другому, с возможностью явного задания типа курсора и типа блокировки: 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2003, 09:46 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32322433&tid=1678274]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
171ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 252ms |
| total: | 519ms |

| 0 / 0 |
