Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 为每行调用函数_Sql_Ms Access_Vba - Fatal编程技术网

Sql 为每行调用函数

Sql 为每行调用函数,sql,ms-access,vba,Sql,Ms Access,Vba,我使用访问权限。我已经存储了从另一个表返回随机关键字的函数。如果在SQL查询中插入此函数,则每行都会收到相同的结果(相同的关键字)。 如何在SQL中轻松实现每行调用此函数 SELECT ID, StoredFunction() AS Result FROM Table _ 我需要 ID Result ------------------- 1 | 1 result 2 | 2 result 3 | 3 result 您在每一行中得到相同结果的原因是Access试图为您

我使用访问权限。我已经存储了从另一个表返回随机关键字的函数。如果在SQL查询中插入此函数,则每行都会收到相同的结果(相同的关键字)。 如何在SQL中轻松实现每行调用此函数

SELECT ID, StoredFunction() AS Result
FROM Table
_

我需要

  ID    Result
-------------------
 1  | 1 result 
 2  | 2 result
 3  | 3 result

您在每一行中得到相同结果的原因是Access试图为您优化查询。它看到对每行调用一次
StoredFunction()
,并认为由于没有向函数传递参数,所有调用都应该返回相同的结果。关于函数的性质,这显然是不正确的。通过将一个或多个参数传递到函数中,可以避免这种自动优化。参数不必以任何方式使用,但Access会将
StoredFunction(ID)
视为它需要在每一行上调用的内容,因为结果可能不同。您只需将函数的声明从
publicstoredfunction()作为Variant
更改为
publicstoredfunction(v作为Variant)作为Variant
。然后,将查询更改为
选择ID,并从表中选择StoredFunction(ID)作为结果。您不需要更改函数本身内部的任何内容。

好的,这里有什么问题?这里缺少一些关键信息。逻辑简单。非常感谢:-)
  ID    Result
-------------------
 1  | 1 result 
 2  | 2 result
 3  | 3 result