2015-01-20 82 views
2

在到達以'minimo'開頭的行時,下面的代碼中出現運行時錯誤6'溢出'消息。直到最近它一直工作正常。在爲其底層表單提供了一些整型更新之後,這條消息已經到達,我不明白爲什麼。運行時錯誤6溢出

'Dim rs As ADODB.Recordset 
Set rs = New ADODB.Recordset 

rs.Open "select min(autonumerazione) from tblDashboard01", CurrentProject.Connection 

Do While Not rs.EOF 
minimo = rs.Fields(0) 
rs.MoveNext 
Loop 
minimo = minimo - 1 
st_Sql = "update tbldashboard01 set MasterLevel = autonumerazione - " & minimo & "" 
Application.DoCmd.RunSQL (st_Sql) 
+0

如何* * MINIMO聲明?如果它是Integer,它不能接受大於32,767的值。當你遇到這個錯誤時,rs.Fields(0)的值是多少? – HansUp 2015-01-20 19:14:34

回答

3

請嘗試將下面一行在節目的開始:

Dim minimo as Long 
+0

布拉沃。謝謝 – 2015-01-20 19:39:28

+4

@MarcheseIlChihuahua - 我的做法是在每個程序模塊(文件)的第一行插入'Option Explicit'。這迫使我使用'Dim'聲明來聲明每個變量,這樣我就可以避免許多類似於這個錯誤的錯誤。 – miroxlav 2015-01-20 21:06:39

+0

Miroxlav,就像我在宣讀這個變量之前已經聲明變量爲Integer一樣。經過一番研究,在我看來,這個問題是由於被提取的基礎領域是一個超過大數目的自動數值領域而造成的。至於爲什麼這是一個問題,我仍然有點困惑。 – 2015-01-21 06:59:16