标题:确定数组上下限
只看楼主
dwsc103
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-9-20
结帖率:100%
已结贴  问题点数:20 回复次数:7 
确定数组上下限
我想利用ASP读取一个EXCEL文件中的资料,如何自动获取工作表sheet1中的有数据的单元格范围(共有m行n列),如何自动获取m、n的数值!
搜索更多相关主题的帖子: 下限 
2010-09-27 03:41
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
得分:0 
recordset中有相差的属性。(excel表可以当着数据库来使用)

★★★★★为人民服务★★★★★
2010-09-27 06:30
dwsc103
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-9-20
得分:0 
回复 2楼 cnfarer
Dim Conn,Driver,DBPath,Rs,n(500,4)
Set Conn=Server.CreateObject("ADODB.Connection")
Driver="Driver={Microsoft Excel Driver (*.xls)};"
DBPath="DBQ=" & Server.MapPath( "资料.xls" )
Conn.Open Driver & DBPath
Sql="Select * From [Sheet1$] where 个体>0"
Set Rs=Conn.Execute(Sql)
Do While Not Rs.EOF
     i=i+1
     n(i,1)=Rs("个体")
     Rs.MoveNext
Loop
Rs.Close
Set Rs=Nothing
Conn.Close
Set Conn=Nothing
%>
象这样如何自动确定数组n的维数,即自动获得样本中的数组n的维数,而不是事先确定n(500,4),如何实现
2010-09-27 09:44
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
得分:0 
rs.recordcount是返回行数
rs.fields.count是返回列数
声明数组n
Dim n()
Redim (Rs.recordcount,rs.Fields.count)
2010-09-27 12:47
dwsc103
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-9-20
得分:0 
回复 4楼 yms123
谢谢,请问能将我的代码直接修改吗,我更改不了!
2010-09-28 05:30
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
得分:0 
Dim Conn,Driver,DBPath,Rs,n(),r,c
Set Conn=Server.CreateObject("ADODB.Connection")
Driver="Driver={Microsoft Excel Driver (*.xls)};"
DBPath="DBQ=" & Server.MapPath( "资料.xls" )
Conn.Open Driver & DBPath
Sql="Select * From [Sheet1$] where 个体>0"
Set Rs=Server.CreateObject("ADODB.RecordSet")
Rs.Open Sql,Conn,1,3
ReDim n(rs.RecordCount,rs.Fields.Count)
r=0
Do While Not Rs.EOF
     For c=0 To rs.Fields.Count-1
           n(r,c)=rs.Fields(c).Value
     Next
     r=r+1
     Rs.MoveNext
Loop
Rs.Close
Set Rs=Nothing
Conn.Close
Set Conn=Nothing
%>
2010-09-28 11:38
dwsc103
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-9-20
得分:0 
回复 5楼 dwsc103
好的,请问以下代码要按照你的修改如何进行,谢谢
<%
Dim Conn, Driver, DBPath, Rs, name
Set Conn=Server.CreateObject("ADODB.Connection")
'确定数据源路径
Driver="Driver={Microsoft Excel Driver (*.xls)};"
DBPath="DBQ=" & Server.MapPath("test.xls")
'调用Open方法打开数据库,生成记录集
Conn.Open Driver & DBPath
Sql="Select * From [Sheet1$] where 个体>0"
Set Rs=Conn.Execute(Sql)
'读入数据,确定动态数组
Do While Not Rs.EOF
k=k+1: Rs.MoveNext: Loop
Rs.Close: Set Rs=nothing
Conn.Close: Set Conn=Nothing
ReDim n(k,4), m(k,4)
'数据读入数组并计算
Set Conn=Server.CreateObject("ADODB.Connection")
Driver="Driver={Microsoft Excel Driver (*.xls)};"
DBPath="DBQ=" & Server.MapPath("test.xls")
Conn.Open Driver & DBPath
Sql="Select * From [Sheet1$] where 个体>0"
Set Rs=Conn.Execute(Sql)
Do While Not Rs.EOF:i=i+1
n(i,1)=Rs("个体"):n(i,2)=Rs("父本")
n(i,3)=Rs("母本"):n(i,4)=Rs("评分")
Rs.MoveNext:Loop
Rs.Close:Set Rs=Nothing
Conn.Close:Set Conn=Nothing
%>

另,Rs.Open SqlConn,1,3
这个1,3是什么意思呀

[ 本帖最后由 dwsc103 于 2010-9-28 18:29 编辑 ]
2010-09-28 18:28
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
得分:20 
<%
Dim Conn, Driver, DBPath, Rs, name,r,c
Set Conn=Server.CreateObject("ADODB.Connection")
'确定数据源路径
Driver="Driver={Microsoft Excel Driver (*.xls)};"
DBPath="DBQ=" & Server.MapPath("test.xls")
'调用Open方法打开数据库,生成记录集
Conn.Open Driver & DBPath
Sql="Select * From [Sheet1$] where 个体>0"
Set Rs=Server.CreateObject("ADODB.RecordSet")
Rs.Open Sql,Conn,1,3'1,3是为了得到rs.RecordCont数据行数
ReDim n(rs.RecordCount,rs.Fields.Count)
r=0
Do While Not Rs.EOF
     For c=0 To rs.Fields.Count-1
           n(r,c)=rs.Fields(c).Value
     Next
     r=r+1
     Rs.MoveNext
Loop
Rs.Close
Set Rs=Nothing
Conn.Close
Set Conn=Nothing
%>
2010-09-30 18:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-321453-1-1.html




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

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