Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Функция VBA для вычисления в запросе. Проблема использования аргументов в функции, имеющих пустые значения
 
 автор: ROM!MDB   (09.02.2007 в 14:22)   личное сообщение
 
 

Есть запрос содержащий поля:
ID_PISMA K1 K2 K3
1 0,5 0,3
2 0,2 0,1
В данном примере поле K3 не содержит значений, это может бытьс любым из полей (строк полей.
Задача найти значение функции W = к1+к2 +к3
Для решения этой задачи разработана функция:

Public Function W(K1 As Variant, k2 As Variant, k3 As Variant) As Variant
Dim X1 As Variant
Dim X2 As Variant
Dim X3 As Variant
X1 = X2 = X3 = 0
W = 0
    If K1 Is Not Null Then
X1 = K1
    End If
      If k2 Is Not Null Then
X2 = k2
    End If
    If k3 Is Not Null Then
X3 = k3
    End If
 W = X1 + X2 + X3
   
End Function


Вопрос в чем ошибка! Помогите разобраться.

  Ответить  
 
 автор: osmor   (09.02.2007 в 14:27)   личное сообщение
 
 

if isnull(K1)
или
if nz(k1,0) = 0

  Ответить  
 
 автор: ROM!MDB   (09.02.2007 в 15:48)   личное сообщение
 
 

Огромное спасибо все залетало!

  Ответить  
 
 автор: Зокир   (14.02.2007 в 10:51)   личное сообщение
54 Кб.
 
 

Function W(K1 As Variant, k2 As Variant, k3 As Variant) As Variant
Dim X1 As Variant
Dim X2 As Variant
Dim X3 As Variant
X1 = X2 = X3 = 0
W = 0
If IsNull(K1) Then
X1 = 0
Else
X1 = K1
End If
If IsNull(k2) Then
X2 = 0
Else
X2 = k2
End If
If IsNull(k3) Then
X3 = 0
Else
X3 = k3
End If
W = X1 + X2 + X3

End Function

  Ответить  
 
 автор: АлексейЕ   (14.02.2007 в 12:30)   личное сообщение
 
 

BИз хелпа:
Optional Необязательный. Указывает, что этот аргумент необязателен. При использовании этого элемента все последующие аргументы, которые содержит списокАргументов, также должны быть необязательными и быть описаны с помощью ключевого слова Optional

В итоге получаем более простую функцию

Public Function W(Optional K1 As Variant = 0, Optional k2 As Variant = 0, Optional k3 As Variant = 0) As Variant
    W = K1 + k2 + k3
End Function

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList