您试图执行不包含指定表达式的查询

时间:2017-01-20 11:43:23

标签: sql database ms-access ms-access-2010

很抱歉,如果这个问题看起来很低,但我从来没有正式教过Access,而且我所知道的一切都只是混乱。

基本上,我正在尝试进行交叉表查询,其中列和行标题都是慈善机构我实际飞往的机场的名称。

我试图让它成为列和行都是机场名称的地方,而值是通过纬度和经度计算的两者之间的距离(两者都包含在与机场名称相同的表中)。

我用这个小表达式计算距离[Sqr((Lat2-Lat1)^2+(Long2-Long1)^2)]但是当我把它放入时我收到错误信息:

  

您尝试执行不包含指定表达式的查询。

最终我的表情看起来像这样:

Sqr(([Airstrip List January 2017]![Latitude]-[Airstrip List January 2017]![Latitude])^2+([Airstrip List January 2017]![Longitude]-[Airstrip List January 2017]![Longitude])^2)

我认为我做错了是我告诉Access查看表格以查找lat和long,而我应该告诉它根据标题和列的内容进行查看。 / p>

对不起,如果这看起来非常粗暴,但我对这种东西很新......任何和所有帮助都很感激。

1 个答案:

答案 0 :(得分:0)

您的交叉表查询需要设置如下:

  1. 将表Airstrip List January 2017添加到查询中两次,但它们之间没有任何连接。
  2. 给两个表别名(显示属性,然后当您单击表时,第一个属性是别名)。致电其中一个Start,另一个End
  3. Start表中的机场名称作为网格中的第一列。将Total设为Group By,将Crosstab设为Row Heading
  4. End表中的机场名称作为网格中的第二列。将Total设为Group By,将Crosstab设为Column Heading
  5. 将第三个网格列设置为Distance: Sqr(([Start].[Latitude]-[End].[Latitude])^2+([Start].[Longitude]-[End].[Longitude])^2)Total设置为SumCrosstab设置为Value
  6. 运行查询!