При включении ВСЕХ ссылок на данные электронной таблицы в списке параметров UDF Excel повторно вычислит функцию каждый раз, когда справочные данные изменяются:
Public Function doubleMe(d As Variant)
doubleMe = d * 2
End Function
можно также использовать Application.Volatile
, но это имеет недостаток того, чтобы заставлять UDF всегда повторно вычислить - даже когда этому не нужно к тому, потому что справочные данные не изменились.
Public Function doubleMe()
Application.Volatile
doubleMe = Worksheets("Fred").Range("A1") * 2
End Function
Ответ Горана - лучший ответ. Но если вам нужен запрос в стиле zend_db_table, это может быть альтернатива:
$sql = $table->select()
->setIntegrityCheck(false)
->from('entries', new Zend_Db_Expr('DISTINCT festival'))
->where('status = ?', 1)
->where('festival_id NOT IN (?)',new Zend_Db_Expr("SELECT m.entry_id FROM entries AS e, mail_log as m WHERE m.entry_id = e.festival_id"));
Я не уверен, что Zend_Db_Table способен обрабатывать подзапросы.
Зачем вам нужно использовать Zend_Db_Table?
Вы можете выполнить запрос напрямую, используя Zend_Db :: query ().
$db = Zend_Db_Table::getDefaultAdapter();
$db->query("SELECT DISTINCT e.festival_id FROM entries AS e, mail_log as m
WHERE e.status = 1
AND e.festival_id
NOT IN (SELECT m.entry_id FROM entries AS e, mail_log as m WHERE m.entry_id = e.festival_id)
");