MS Access 2013 - 通过零错误获得毫无根据的划分

时间:2016-05-09 20:37:59

标签: sql ms-access access-vba

我有一个例程,可以将总计写入文本框,以防止昂贵的“Dlookup”问题。处理时间。

有些总数会产生百分率,因此取决于分母。

错误似乎是由于某种类型的延迟,因为分母从不为空或为零。例如,只要这个数据库中有值 - 总是有丰富的值,这些分母永远不会为零。

无论如何,这里是获得错误的行(我得到错误11)

<img class="img-rounded" src="uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" alt="Generic placeholder image" width="200" height="160">

如何捕获此错误?它只是偶尔发生,当我告诉用户重新启动数据库(释放一些资源)时,它通常会纠正问题。

这是TOTALS final的SQL

Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim rsSP As DAO.Recordset

Set db = CurrentDb
--->Set rs = db.OpenRecordset("TOTALS_FINAL", dbOpenSnapshot)

它之前的查询只是收集用于产生最终百分比的总数

1 个答案:

答案 0 :(得分:3)

原因是, IIf 总是评估两个表达式,即使只使用了一个。

所以使用&#34; double-iif&#34;除以1而不是零:

>> A = zeros(4,5)     % inclusive matrix   

 A =  
     0    0    0    0    0  
     0    0    0    0    0  
     0    0    0    0    0  
     0    0    0    0    0  

>> X = [9,8;5,7;8,3;6,7]   % data to insert  

  X =  
   9   8  
   5   7   
   8   3  
   6   7  

>> P = [3;2;4;1]  % insertion position within the matrix  

P =  
   3  
   2  
   4  
   1  

>> APX = [0,0,9,8,0;0,5,7,0,0;0,0,0,8,3;6,7,0,0,0]   % what I want  

  APX =  
   0   0   9   8   0  
   0   5   7   0   0  
   0   0   0   8   3  
   6   7   0   0   0