![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 11.02.2011
Сообщений: 69
|
![]()
Здраствуйте уважаемые программисты. Нужна ваша помощь. Дело в том, что переделываю mdb в adp. и возникла такая проблема, нужно написать функцию в сохраненой процедуре, раньше она была написанна в VBA. Вот процедура:
Public Function fnc_KRM(m_tp, sri, dpos, m_zzz) As Double Dim k, m_tfakt Dim dbs As Database Dim rst As Recordset k = 0 m_tfakt = 0 If Year(sri) <> Year(dpos) Then k = "sss" & CStr(Year(dpos)) Set dbs = CurrentDb() Set rst = dbs.OpenRecordset("select Max_PORNOM From TBL_STEP_0 Where ss='" & k & "'") If rst.RecordCount > 0 Then k = CInt(rst("Max_Pornom")) End If End If m_tp = CCur(Nz(m_tp, 0)) + k m_tfakt = m_tp + CCur(Nz(m_zzz, 0)) m_tfakt = IIf(m_tfakt < m_tp, m_tp, m_tfakt) If m_tfakt <= 0 Or m_tp <= 0 Then fnc_KRM = 1 Else fnc_KRM = CDbl(CCur(m_tp / m_tfakt)) End If End Function я пробовала переделать ее и вот что получилось, вроде и правильно, но что то не так считает, подскажите что именно, кидаю то что я сделала: ALTER FUNCTION dbo.fnc_KRM (@m_tp int,@sri datetime, @dpos datetime, @m_zzz int ) RETURNS int As BEGIN DECLARE @m_tfakt int DECLARE @fnc_KRM int DECLARE @rst int Declare @k int Declare @l nvarchar (20) Set @k=0 Set @m_tfakt = 0 If Year(@sri) <> Year(@dpos) Set @l=Cast(Year(@dpos) as nvarchar (17)) Set @rst= (select Max_PORNOM From TBL_STEP_0 Where ss= @l) IF (@rst>0) begin Set @k=@rst end Set @m_tp = @m_tp + @k Set @m_tfakt = @m_tp + @m_zzz If(@m_tfakt<@m_tp) Set @m_tfakt=@m_tp Else Set @m_tfakt=@m_tfakt if ( @m_tp<=0 OR @m_tfakt<=0 ) SET @fnc_KRM=1 Else SET @fnc_KRM=(@m_tp / @m_tfakt) Return (@fnc_KRM) END Заранее огромное спасибо) |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
![]()
Здравствуйте Gul'ka.
не имея представления о Вашей задаче (так-же не могу проверить синтаксис) выкладываю рекомендации по корректировке функции Код:
Евгений. P.S. для удобочитаемости выкладываемые конструкции заключайте в тэги [соde] ... [/соde] для этого на панели расположена кнопка - # Последний раз редактировалось Teslenko_EA; 09.07.2012 в 23:38. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
VBA Word,VBA Excel решить 2 задачи | fafolo4ka | Фриланс | 6 | 05.03.2012 01:15 |
Написать процедуру, заменяющую стандартную процедуру Insert | Andi5 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 24.11.2011 17:57 |
Описать процедуру в С++ | Devil21RUS | Помощь студентам | 1 | 17.10.2011 11:54 |
создайть процедуру | brans | Microsoft Office Excel | 6 | 19.10.2010 17:18 |
Как разбить на части VBA процедуру (ту лардж)? | neprofi | Помощь студентам | 1 | 29.04.2010 04:11 |