DataGrid运行时显示执行阶段错误'9':阵列索引超出范围

wghshy 2005-04-14 10:24:05
在调试的时候正确执行.
制成EXE文件后在本机的任何目录下执行都是正确的,但是如果把EXE文件复制到电脑A,在电脑A上执行和在调试机器通过共享执行这个文件都会显示标题所描述的错误.
想问问这是为什么?
程序代码如下:
Private Sub Form_Load()
dim cn as adodb.connection
dim sel_rs as adodb.recordset
set cn = new adodb.connection
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0 ; data source = '" & App.Path & "\datum.mdb'"
Set sel_rs = New ADODB.Recordset
sel_rs.CursorLocation = adUseClient
SQL = ""select describing,ratio,Manufacture,Dielectric_Constant from T_Main where stuff = 'BA'"
sel_rs.Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimistic
Set DataGrid1.DataSource = sel_rs
With DataGrid1
.Columns(0).Caption = "材料編號"
.Columns(0).Width = 2800
.Columns(1).Caption = "比重"
.Columns(1).Width = 800
.Columns(2).Caption = "生產商"
.Columns(2).Width = 800
.Columns(3).Caption = "介電常數"
.Columns(3).Width = 800
End With
End sub
...全文
343 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wghshy 2005-04-15
  • 打赏
  • 举报
回复
搞定了,是数据库的问题,我电脑上的数据库文件的字段名跟另外一个数据库文件的字段名不同,造成这种错误.
daisy8675 2005-04-14
  • 打赏
  • 举报
回复
把你的代码mail给偶
我试试

anya335 # hotmail.com
wghshy 2005-04-14
  • 打赏
  • 举报
回复
莫依妹妹,也许是姐姐,谢谢你的解答.
我试过了,把数据库和做好的EXE文件一起拷到运行程序的机器上一样是这个错误,应该说明不是数据库的问题.
我搞了整整一个下午都没办法搞得出来,想不通为什么这样.
DataGrid控件相对于MSHFlexGrid控件来说简单得多,但这个地方就搞不定了,看来还是要好好学MSHFlexGrid控件了.
daisy8675 2005-04-14
  • 打赏
  • 举报
回复
是你的数据库问题。不是程序的问题。

因为你是共享文件,实际VB取得路径并不对,你用on error过掉了这个错误

而datagrid在没有绑定数据时候是有2列的,所以你到2,也就是第3列才会出错

解决的办法:把你的程序开到运行程序的机器上,而不是只是共享,这样就不会出错了
wghshy 2005-04-14
  • 打赏
  • 举报
回复
这里数据库当然是没问题的,不用考虑数据库的问题.
关键问题在于datagrid1.columns(2)和datagrid1.columns(3).
我用on error resume next语句找出运行到 .Columns(2).Caption = "生產商"的时候停止运行了.
DATAGRID默认的只有2个columns,当运行到datagrid1.Columns(2).Caption = "生產商"的时候就出错了.但这里我不明白怎么样才不会出错.
如果需要增加columns那需要怎么样增加?
kcm8233 2005-04-14
  • 打赏
  • 举报
回复
数据库目录改变了!~
控件指的还是以前数据库的目录

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧