| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1596 人关注过本帖
标题:为何"超出当前范围"请教
只看楼主 加入收藏
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
结帖率:73.44%
收藏
已结贴  问题点数:20 回复次数:9 
为何"超出当前范围"请教
我定义了Dim a(1 To 9, 1 To 9) As Double,当一串具有11位的数字存入数组a时,总会提示"超出当前范围"(当一串是10位数字存入时也会提示"超出当前范围",再当一串只有9位的数字存入时才可运行),请教要如何修改才可避免,谢谢

[ 本帖最后由 fdxxhjc 于 2015-9-21 19:45 编辑 ]
搜索更多相关主题的帖子: 如何 
2015-09-21 19:30
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
Double 数据类型

Double(双精度浮点型)变量存储为 IEEE 64 位(8 个字节)浮点数值的形式,它的范围在负数的时候是从 -1.79769313486232E308 到 -4.94065645841247E-324,而正数的时候是从 4.94065645841247E-324 到 1.79769313486232E308。Double 的类型声明字符是数字符号 (#)。

所以,请贴出出错的代码来。

授人于鱼,不如授人于渔
早已停用QQ了
2015-09-21 20:01
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
收藏
得分:0 
回复 2楼 风吹过b
实时错误'-2147352566(8002000a)':
超出当前范围.

请先生指点,谢谢

[ 本帖最后由 fdxxhjc 于 2015-9-21 21:12 编辑 ]
2015-09-21 20:19
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
这个数据类型能保存15位的有效数据,而你的语句导致超范围,那是那条语句导致的超范围,我们猜不出。

授人于鱼,不如授人于渔
早已停用QQ了
2015-09-21 22:12
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
收藏
得分:0 
先生是这样,我在设置了:Dim a(1 To 9, 1 To 9) As Double的情况下,用代码
For i = 1 To n
   For j = 1 To n
     Debug.Print a(i, j);
   Next j
    Debug.Print
  DFF1rs1.Update
  DFF1rs1.AddNew
 Next i
经过运行后若将结果在"立即窗口"中显示是成功的
而用代码
For i = 1 To n
     For j = 1 To n
 DFF1rs1("列" & j) = a(i, j)
Next j
DFF1rs1.Update
    DFF1rs1.AddNew
 Next i
想写入MDB表时则显示错误代码为:
实时错误'-2147352566(8002000a)':
超出当前范围.

谢谢先生指点
2015-09-22 08:01
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
收藏
得分:0 
回复 4楼 风吹过b
先生是这样,我在设置了:Dim a(1 To 9, 1 To 9) As Double的情况下,用代码
For i = 1 To n
   For j = 1 To n
     Debug.Print a(i, j);
   Next j
    Debug.Print
  DFF1rs1.Update
  DFF1rs1.AddNew
Next i
经过运行后若将结果在"立即窗口"中显示是成功的
而用代码
For i = 1 To n
     For j = 1 To n
DFF1rs1("列" & j) = a(i, j)
Next j
DFF1rs1.Update
    DFF1rs1.AddNew
Next i
想写入MDB表时则显示错误代码为:
实时错误'-2147352566(8002000a)':
超出当前范围.

谢谢先生指点
2015-09-22 08:02
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
那就要去检查  MDB 表这个字段设置是什么类型。而不是仅仅抓着  
Dim a(1 To 9, 1 To 9) As Double 这句不放。这句不会导致后面的错误。
而是这句导致的错误:
DFF1rs1("列" & j) = a(i, j)
关键在于这个字段的类型,如字段类型是 数值 ,但没有去选择数值类型时,默认是 long ,那就会导致超范围了。

授人于鱼,不如授人于渔
早已停用QQ了
2015-09-22 10:34
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
收藏
得分:0 
回复 7楼 风吹过b
哦谢谢先生。我这个mdb表的字段是“双精度型”格式“空白”小数位数“自动”,请教先生这个表的字段中修改成什么形式能使写入的数的位数更多些,请指教,谢谢
2015-09-22 11:07
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:20 
那等我有空来测试一下吧。最近都基本上没空。

授人于鱼,不如授人于渔
早已停用QQ了
2015-09-22 11:10
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
收藏
得分:0 
回复 9楼 风吹过b
哦,麻烦先生了
2015-09-22 12:58
快速回复:为何"超出当前范围"请教
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039366 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved