powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите с формой!
15 сообщений из 15, страница 1 из 1
Помогите с формой!
    #32319809
Calypso
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скажите пожалуйста !
При установке в качестве источника для формы - результата выполнения
хранимой процедуры нужно также выполнить установку для всех контролов?
...
Рейтинг: 0 / 0
Помогите с формой!
    #32319836
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну ясно дело, к полям привязка нужна.
...
Рейтинг: 0 / 0
Помогите с формой!
    #32319964
Calypso
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему-то не получается связать результат выполнения хп
с RecordSource, хотя все делаю как в примере на форуме...
...
Рейтинг: 0 / 0
Помогите с формой!
    #32319967
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я не разбираюсь в ХП, но в таком виде на вопрос никто не ответит. Какой пример? На каком этапе возникает проблема? Какая именно?
...
Рейтинг: 0 / 0
Помогите с формой!
    #32319996
Calypso
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть формы: frm_Proba и frm_Main
Из формы в frm_Main берутся параметры: StartPeriod и EndPeriod из
одноименных полей.
По нажатию кнопки вызывается скрипт:
Me.StartPeriod.Requery
Me.EndPeriod.Requery
Dim cmd As ADODB.Command
Dim conn As ADODB.Connection
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
Dim Prm1 As ADODB.Parameter
Dim Prm2 As ADODB.Parameter
Set conn = CurrentProject.Connection
Set cmd = New ADODB.Command
With cmd
.ActiveConnection = conn
.CommandText = "Get_data"
.CommandType = adCmdStoredProc
End With
Set Prm1 = cmd.CreateParameter(StartPeriod, adDate, adParamInput, 22, Me.StartPeriod.Value)
cmd.Parameters.Append Prm1
Set Prm2 = cmd.CreateParameter(EndPeriod, adDate, adParamInput, 22, Me.StartPeriod.Value)
cmd.Parameters.Append Prm2

Set rst = cmd.Execute

Forms!frm_Proba!RecordSource = rst
Forms!frm_Proba.Value.ControlSource = rst.Fields(0).Value
Forms!frm_Proba.Time.ControlSource = rst.Fields(1).Time

DoCmd.OpenForm "frm_Proba"
conn.Close
Set conn = Nothing
Set cmd = Nothing
...
Рейтинг: 0 / 0
Помогите с формой!
    #32320019
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Forms!frm_Proba!RecordSource = rst
Forms!frm_Proba.Value.ControlSource = rst.Fields(0).Value
Forms!frm_Proba.Time.ControlSource = rst.Fields(1).Time

Это что, издевательство такое???

Во-первых ткни мышью в слово ControlSource, нажми Ф1 и погляди что там должно быть. И что ты туда пытаешься впихнуть.
Во-вторых не называй контролы таким образом
В-третьих... не, про издевательство над рекордсетом в следующий раз.
...
Рейтинг: 0 / 0
Помогите с формой!
    #32320021
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это где такой пример был? Как все запущено

Forms!frm_Proba!RecordSource = rst

свойству с текстовым типом идет попытка присвоить объектную переменную.

А почему бы не сделать так:
В конструкторе формы frm_Proba поставить
RecordSource =
dbo.Get_data
InputParameters =
@StartPeriod datetime= Forms!frm_Main!StartPeriod,
@EndPeriod datetime = Forms!frm_Main!EndPeriod

А по кнопке только одна команда
Forms!frm_Proba.Requery
...
Рейтинг: 0 / 0
Помогите с формой!
    #32320037
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господи как все запущено...

Код: plaintext
1.
2.
Forms!frm_Proba тра-та-та
.......
DoCmd.OpenForm  "frm_Proba"  


Если это frm_Proba еще не открыта - как же ты с ней работаешь?

Пошел искать такой пример
...
Рейтинг: 0 / 0
Помогите с формой!
    #32320039
Calypso
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Это что, издевательство такое???
Да не издеваюсь я ! Просто не знаю как правильно описать
потому-что "правильное" не работает!
...
Рейтинг: 0 / 0
Помогите с формой!
    #32320042
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты бы лучше показал неработающее "правильное", чем ... хм... неработающее "неправильное"
...
Рейтинг: 0 / 0
Помогите с формой!
    #32320053
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно, конечно, и в коде 2 (две или достаточно одну!?) строчки

Me.RecordSource = "dbo.Get_Data(" & Forms("в frm_Main").StartPeriod & ", " &
Forms("в frm_Main").EndPeriod &")"

Me.Requery ' сомневаюсь, что надо.
...
Рейтинг: 0 / 0
Помогите с формой!
    #32320077
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Витал
Зачем учишь плохому
Если писать в источник формы строку процедуры сразу с параметрами, то придется преобразовывать параметры (т.е. то что в факе по формированию строки на сервер).
Если использовать InputParameters, то преобразованием занимается аксесс.

То что у кого-то работает без преобразования, не факт, что такой же код будет работать на другой машине.
Например русский и английский аксесс ведут себя по разному.

И потом зачем присваивать динамически источник в коде, если его можно один раз присвоить в конструкторе, а по кнопке выполнять только обновление.
...
Рейтинг: 0 / 0
Помогите с формой!
    #32320094
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
incolid писал:зачем присваивать динамически источник в коде, если его можно один раз присвоить в конструкторе, а по кнопке выполнять только обновление.
"Кутить, так кутить!!" Сегодня он привязался к форме, завтра захочет из кода, рекордсета, инпутбокса... по сиганалам с Марса... формировать источник данных для формы.

Вопрос тогда практический. Честно совру. Не копал в этом направлении.
Чем отличается твои ссылки на поле формы и мои? В том и другом - берутся значения полей формы. В одном случае - это в свойствах формы, в другом в модуле формы.

А вообще-то, чтобы не полагаться на всякие настройки, предпочитаю сравнивать даты, преобразовав в числовой тип. В моем случае это можно сделать просто дописав CONVERT() или CAST(). А в твоем?
...
Рейтинг: 0 / 0
Помогите с формой!
    #32320117
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще-то, чтобы не полагаться на всякие настройки, предпочитаю сравнивать даты, преобразовав в числовой тип. В моем случае это можно сделать просто дописав CONVERT() или CAST(). А в твоем?

Чтобы не полагаться на настройки я предпочитаю сравнивать без преобразования с помощью явного указания типа данных.
Во-первых это всегда быстрее чем преобразование, во-вторых...имхо...более правильный стиль программирования.

В данном примере:
InputParameters =
@StartPeriod datetime = Forms!frm_Main!StartPeriod,
@EndPeriod datetime = Forms!frm_Main!EndPeriod
Тип данных указан явно и на любых комбинациях ОС и офис с любыми нац.настройками такой вариант будет работать.
...
Рейтинг: 0 / 0
Помогите с формой!
    #32320124
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
incold

Мое русское и простое, но глубокое мерси, сенька и данька!
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите с формой!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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