VB与EXCEL的连接

来源:百度文库 编辑:神马文学网 时间:2024/04/28 06:47:13
[ 2009-1-6 15:28:33 | By: jap ]
1、在Excel表的顶端插入一个类似Access数据库字段名那样的表头,也就是列名,类似于“学号”、“姓名”这样的。
2、在VB窗口添加一个ListBox控件,List1(我都不知道要用什么来显示分组,随便用这个了)。
Private Sub Command1_Click()
'工程->引用->Microsoft ActiveX Data Objects 2.X Library
Dim xlConn As New ADODB.Connection
Dim xlRs As New ADODB.Recordset
Dim strConn As String
Dim xlCnt As Integer
Dim 学号() As String, 姓名() As String
'连接数据库的字符串,后面的“HDR=yes”需要注意,它的意思是把Excel表第一行作为字段名,第二行开始方是有效数据。HDR=no则反之,从第一行开始就看做有效数据。
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Book1.xls;Extended Properties='Excel 8.0;HDR=yes;IMEX=1'"
'打开Excel连接
xlConn.Open strConn
'像打开数据库一样,使用SQL语言,打开名称为“sheet1”的工作表
xlRs.Open "select * from [sheet1$]", xlConn, adOpenStatic, adLockReadOnly
'获得表中数据的记录数
xlCnt = xlRs.RecordCount
'读出名称为“Sheet1”的工作表里面的数据
ReDim 学号(xlCnt), 姓名(xlCnt)
For i = 1 To xlCnt
学号(i) = Str(xlRs("学号"))
姓名(i) = xlRs("姓名")
xlRs.MoveNext
Next
'全部读进数组之后,就可以开始分组啦,这里你可以随便按照你的要求改了
For i = 1 To xlCnt
List1.AddItem (学号(i) & "," & 姓名(i))
If i Mod 4 = 0 Then List1.AddItem (" ")
Next
'关闭sheet对象,关闭Excel连接
xlRs.Close
xlConn.Close
Set xlRs = Nothing
Set xlConn = Nothing
End Sub