Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Function / 12 сообщений из 12, страница 1 из 1
04.05.2005, 10:43:05
    #33047501
Andrey13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Function
Здравствуйте, подскажите пожалуйста, не могу понять почему

MsgBox oplata(3) – выдает значение правильно

Код: plaintext
conn.Execute ("UPDATE Adding SET Adding.SummaI = " +oplata( 3 ) + ", Adding.SummaBl = " + FormulaB + " WHERE (((Adding.Key)=" + Str(KEY) + ") AND ((Adding.ispr)=0))")

вадает ошибку «Неопределенная функция ‘Oplata’ в выражении»

**** Сама функция **********
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
'Эта функция возвращает сумму оплаты по категории KodKoaegorii для текущего лиц. счета
' X=Oplanta(1) присвоит X значение суммы оплат и субсидии для категории расчета -1

Public Function oplata(ByVal KodKoaegorii As Integer) As Double
Dim Fun As ADODB.Recordset
Set Fun = New ADODB.Recordset
   Fun.Open ("SELECT Sum(ADDING.SummaI) AS [Sum-SummaI] From ADDING GROUP BY ADDING.KodKat, ADDING.Tip, ADDING.KodKv HAVING (((ADDING.KodKat)=" + Str(KodKoaegorii) + ") AND ((ADDING.Tip)=" + Chr( 34 ) + "-" + Chr( 34 ) + ") AND ((ADDING.KodKv)=" + Filter.Nm + ")) OR (((ADDING.Tip)=" + Chr( 34 ) + "s" + Chr( 34 ) + "))"), conn
If Not Fun.EOF Then oplata = Fun.Fields("Sum-SummaI").Value
Fun.Close
End Function

Вариант
X=Oplata(3)
Потом переменную X в запрос не подходит.
...
Рейтинг: 0 / 0
04.05.2005, 16:39:20
    #33048614
Сергей В.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Function
А какой тип данных получится если сложить строковую переменную и двойное целое?
...
Рейтинг: 0 / 0
04.05.2005, 17:40:13
    #33048802
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Function
+ замени на & в первом вызове
...
Рейтинг: 0 / 0
04.05.2005, 17:47:33
    #33048827
Andrey13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Function
Спасибо, сейчас попробую, но ошибка не типа данных а

Неопределенная функция ‘Oplata’ в выражении
...
Рейтинг: 0 / 0
04.05.2005, 22:19:43
    #33049239
Andrey13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Function
Konst_One + замени на & в первом вызове

Бесполезно.
...
Рейтинг: 0 / 0
04.05.2005, 23:14:57
    #33049263
Guest123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Function
A chto function oplata vernet esli esli pystoy Recordset?
I bi postavila vmesto + &,vmesto return double -> variant
a chto hranitsya v FormulaB?
I bi poprobivala bi po-etapno snachala-bi
conn.Execute ("UPDATE Adding SET Adding.SummaI = " & oplata(3))
...
Рейтинг: 0 / 0
05.05.2005, 07:49:09
    #33049452
Andrey13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Function
Повторю ошибка:Неопределенная функция ‘Oplata’ в выражении и ошибку надо искать сдесь. Я скорее всего неправильно описал функцию, или так как я хочу, делать просто нельзя.
Если я заменю oplata(3) на скажем str(10), все пройдет нормально.
...
Рейтинг: 0 / 0
05.05.2005, 10:18:33
    #33049688
ziktuw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Function
Поскольку в ошибке ‘Oplata’ приведена с большой буквы, а такого не встречается в приведенных текстах, ошибку следует поискать также и в другом месте.

А попробуй-ка переименовать эту функцию. Что измениться?
Может, русское "о" использовано где-то вместо английского?


-------
Сегодня он VB применит, а завтра Родине изменит!
...
Рейтинг: 0 / 0
05.05.2005, 22:34:03
    #33051667
under
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Function
а не зя ли написать так:

Код: plaintext
1.
2.
3.
4.
Dim strin as string
strin = opldata( 3 )

conn.Execute = "YO " & str(strin) & " YO"
...
Рейтинг: 0 / 0
06.05.2005, 21:43:47
    #33053743
Andrey13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Function
Прошу прощения, я криво задал вопрос. Хоьел что бы было попроще, а получилось ввел всех в заблуждение. На самом деле у меня так.

F = "Oplata(2)"
conn.Execute ("UPDATE Adding SET Adding.SummaI = " +F + ", Adding....

Так делать нельзя это уже понятно. Но как тогда быть?
Надо Adding.SummaI присвоить значение получаемое из Oplata(2)?
Значение F меняется и не обязательно это функция. если
F="1/2" или даже условие скажем "IIF(1=1,5,0)", то все работает.

Подскажите пожалуйста как мне выйти из положения.
...
Рейтинг: 0 / 0
06.05.2005, 22:28:59
    #33053770
Guest1234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Function
srazy izvinyus,chto ne polzyus russian klaviatyroy.
Andrey13,ti yje sovsem zapytal,chto znachit
F = "Oplata(2)"-chto eto za kavichki?
Sovet naschet pomenyt + na & .
1) zagoni eto virajenie v
MsgBox ("UPDATE Adding SET Adding.SummaI = " +F + ", Adding....
i pokaji chto polychaetsya and lychshe kysok koda from Vb kak ti eto vse vizivaesh
Posle etogo posmotrim,sudya po-vsemy y tebya idet ne sootvetstvie tipa polya bazi dannix i VB. Kakoy tip polya Adding.SummaI ,kstate kakoy tip peremennoy F obyvi ee variant
...
Рейтинг: 0 / 0
07.05.2005, 09:25:17
    #33053933
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Function
Вы должны переписать функцию "Oplata"
Надо чтобы она возвращала строковое представление числа и в правильном формате.
Т.е. разделитель - всегда точка независимо от настроек компьютера.
И, конечно, она должна возвращать строчку "Null" в случаях когда это надо.

ps:
кажется тут гость что то такое же написал - правда я не читал.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Function / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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