急~在线等~datagrid输出到excel问题
Private Sub CommandPrint_Click()Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim q As String
Dim ex As Object
Dim exwbook As Object
Dim exsheet As Object
Set ex = CreateObject("Excel.Application")
Set exwbook = Nothing
Set exsheet = Nothing
Set exwbook = ex.Workbooks.Open(App.Path & "\2.xls")
ex.Visible = True
Set exsheet = exwbook.Worksheets("sheet1")
ex.Range("c3").Value = "序号"
ex.Range("d3").Value = "姓名"
ex.Range("e3").Value = "卡号"
ex.Range("f3").Value = "受控站"
ex.Range("g3").Value = "时间"
ex.Range("h3").Value = "集控站"
ex.Range("i3").Value = "次数"
ex.Range("j3").Value = "原始卡号"
ex.Range("k3").Value = "状态"
'i为记录个数使用循环将数据全部添加
For i = 0 To Mrs.RecordCount
j = 4 + i
'k为数据列数
For k = 0 To 8
'通过使用变量k和j变换单元格位置
q = Chr(99 + k) & j
'将datagrid1的数据放到单元格内
ex.Range(q).Value = DataGrid1.Columns(k)
Next k
If Mrs.EOF = False Then
Mrs.MoveNext
End If
Next i
'保存输入到事故信息查询结果.xls
ex.Save
ex.Quit
MsgBox "数据已导入到根目录下的2.xls中"
Set ex = Nothing
End Sub
我通过上面的一段程序将datagrid里面查询的结果输出到excel2003中,excel中也确实有了输出的内容,但是输出结束后又跳出来一个错误窗口
vb 实时错误 ‘1004’
数据访问错误
点击调试后,显示在代码中红色的一行
各位GGJJ们这个我哪里错了啊~ --------------------编程问答-------------------- 我已经解决了HOHO --------------------编程问答--------------------
--------------------编程问答--------------------
Private Sub CommandPrint_Click()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim q As String
Dim ex As Object
Dim exwbook As Object
Dim exsheet As Object
On Error Resume Next
Set ex = CreateObject("Excel.Application")
Set exwbook = Nothing
Set exsheet = Nothing
Set exwbook = ex.Workbooks.Open(App.Path & "\2.xls")
ex.Visible = True
Set exsheet = exwbook.Worksheets("sheet1")
ex.Range("c3").Value = "序号"
ex.Range("d3").Value = "姓名"
ex.Range("e3").Value = "卡号"
ex.Range("f3").Value = "受控站"
ex.Range("g3").Value = "时间"
ex.Range("h3").Value = "集控站"
ex.Range("i3").Value = "次数"
ex.Range("j3").Value = "原始卡号"
ex.Range("k3").Value = "状态"
'i为记录个数使用循环将数据全部添加
For i = 0 To Mrs.RecordCount
j = 4 + i
'k为数据列数
For k = 0 To 8
'通过使用变量k和j变换单元格位置
q = Chr(99 + k) & j
'将datagrid1的数据放到单元格内
ex.Range(q).Value = DataGrid1.Columns(k)
Next k
If Mrs.EOF = False Then
Mrs.MoveNext
End If
Next i
'保存输入到事故信息查询结果.xls
ex.Save
ex.Quit
MsgBox "数据已导入到根目录下的2.xls中"
Set ex = Nothing
End Sub
jf --------------------编程问答-------------------- Excel 的列是不能为A5,A6,只有AA,AB 的
这里
For i = 0 To Mrs.RecordCount
j = 4 + i
'k为数据列数
For k = 0 To 8
'通过使用变量k和j变换单元格位置
q = Chr(99 + k) & j
'将datagrid1的数据放到单元格内
ex.Range(q).Value = DataGrid1.Columns(k)
Next k
你要取Excel的列名给你一个函数
alngNum这个参数可以直接传入I变量
Public Function GetColumnName(ByRef alngNum As Long) As String
'获取Excel的列名,即数字转A-Z的26进制
Dim lngNum As Long
Dim lngI As Long
Dim strColumn As String
strColumn = ""
lngNum = alngNum
While lngNum >= 26
lngI = lngNum Mod 26
lngNum = lngNum \ 26
strColumn = Chr(65 + lngI) & strColumn
lngNum = lngNum - 1
Wend
lngI = lngNum Mod 26
strColumn = Chr(65 + lngI) & strColumn
GetColumnName = strColumn
End Function --------------------编程问答-------------------- 可以的,EXCEL是没有问题的,我后来发现是我的i值有问题,我从0开始的,应该是 For i = 0 To Mrs.RecordCount -1,这样写了后问题就解决了,不过还是谢谢你了~ --------------------编程问答-------------------- ? --------------------编程问答-------------------- ?
补充:VB , 数据库(包含打印,安装,报表)