powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Function
12 сообщений из 12, страница 1 из 1
Function
    #33047501
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, подскажите пожалуйста, не могу понять почему

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
Function
    #33048614
Сергей В.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А какой тип данных получится если сложить строковую переменную и двойное целое?
...
Рейтинг: 0 / 0
Function
    #33048802
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+ замени на & в первом вызове
...
Рейтинг: 0 / 0
Function
    #33048827
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, сейчас попробую, но ошибка не типа данных а

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

Бесполезно.
...
Рейтинг: 0 / 0
Function
    #33049263
Guest123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Function
    #33049452
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Повторю ошибка:Неопределенная функция ‘Oplata’ в выражении и ошибку надо искать сдесь. Я скорее всего неправильно описал функцию, или так как я хочу, делать просто нельзя.
Если я заменю oplata(3) на скажем str(10), все пройдет нормально.
...
Рейтинг: 0 / 0
Function
    #33049688
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поскольку в ошибке ‘Oplata’ приведена с большой буквы, а такого не встречается в приведенных текстах, ошибку следует поискать также и в другом месте.

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


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

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

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

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
Function
    #33053770
Guest1234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Function
    #33053933
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы должны переписать функцию "Oplata"
Надо чтобы она возвращала строковое представление числа и в правильном формате.
Т.е. разделитель - всегда точка независимо от настроек компьютера.
И, конечно, она должна возвращать строчку "Null" в случаях когда это надо.

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


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