我现在想把ACESS中的所有记录复制到EXCEL的响应的单元格中,出现了一些问题请高手指教。
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim l, m As Integer
Dim DBCon As New ADODB.Connection
Dim DBRs As New ADODB.Recordset
DBCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\DB.mdb"
DBRs.Open "select * from STA1", DBCon
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open(App.Path & "\report\STA1.xls")
xlApp.Visible = False '设置EXCEL对象可见(或不可见)
Set xlSheet = xlBook.Worksheets("Sheet1") '设置活动工作表第一种方法采用循环方式:
dim i,j as integer
For i = 1 To DBRs.RecordCount
For j = 1 To DBRs.Fields.Count
xlSheet.Cells(l + 22, j) = DBRs.Fields(j - 1).Value
Next j
DBRs.MoveNext
Next i
xlSheet.Cells.Columns.AutoFit
xlBook.Save
DBRs.Close
Set DBRs = Nothing
Set DBCon = Nothing
xlApp.Quit
Set xlApp = Nothing
MsgBox "数据已成功保存到" & CommonDialog1.FileName, , "保存提示"
这种方法出现的情况是:记录没有复制到A23之后的单元格中
第二种方法使用CopyFromRecordset xlSheet .Range("A23").CopyFromRecordset DBRs
xlSheet.Cells.Columns.AutoFit
xlSheet.Cells.Columns.AutoFit
xlBook.Save
DBRs.Close
Set DBRs = Nothing
Set DBCon = Nothing
xlApp.Quit
Set xlApp = Nothing
MsgBox "数据已成功保存到" & CommonDialog1.FileName, , "保存提示"
这种方法出现的情况是:记录顺序不正常。
ACESS数据库中表1的记录如下:
1 interval 09-07-12
2 interval 09-07-10
3 interval 09-07-09
4 interval 09-07-02
5 interval 09-07-05
但是复制到EXCEL后发现顺序变成了
1 interval 09-07-12
3 interval 09-07-09
4 interval 09-07-02
5 interval 09-07-05
2 interval 09-07-10
请高手指点 谢谢
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim l, m As Integer
Dim DBCon As New ADODB.Connection
Dim DBRs As New ADODB.Recordset
DBCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\DB.mdb"
DBRs.Open "select * from STA1", DBCon
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open(App.Path & "\report\STA1.xls")
xlApp.Visible = False '设置EXCEL对象可见(或不可见)
Set xlSheet = xlBook.Worksheets("Sheet1") '设置活动工作表第一种方法采用循环方式:
dim i,j as integer
For i = 1 To DBRs.RecordCount
For j = 1 To DBRs.Fields.Count
xlSheet.Cells(l + 22, j) = DBRs.Fields(j - 1).Value
Next j
DBRs.MoveNext
Next i
xlSheet.Cells.Columns.AutoFit
xlBook.Save
DBRs.Close
Set DBRs = Nothing
Set DBCon = Nothing
xlApp.Quit
Set xlApp = Nothing
MsgBox "数据已成功保存到" & CommonDialog1.FileName, , "保存提示"
这种方法出现的情况是:记录没有复制到A23之后的单元格中
第二种方法使用CopyFromRecordset xlSheet .Range("A23").CopyFromRecordset DBRs
xlSheet.Cells.Columns.AutoFit
xlSheet.Cells.Columns.AutoFit
xlBook.Save
DBRs.Close
Set DBRs = Nothing
Set DBCon = Nothing
xlApp.Quit
Set xlApp = Nothing
MsgBox "数据已成功保存到" & CommonDialog1.FileName, , "保存提示"
这种方法出现的情况是:记录顺序不正常。
ACESS数据库中表1的记录如下:
1 interval 09-07-12
2 interval 09-07-10
3 interval 09-07-09
4 interval 09-07-02
5 interval 09-07-05
但是复制到EXCEL后发现顺序变成了
1 interval 09-07-12
3 interval 09-07-09
4 interval 09-07-02
5 interval 09-07-05
2 interval 09-07-10
请高手指点 谢谢
解决方案 »
- GdiTransparentBlt 只对窗体设备上下文有效吗?
- 求一个小例子!!!!!关于最小化到托盘的例子。
- VB有很多錢哦
- VB写程序时,碰到一个和程序无关的问题,请教!
- 如何用VB写一个成功的木马程序,贴出源码并请指教了
- 如何实现在结果中再查询?
- 那位兄弟用VB、PB开发过财务软件,马上面谈付现金!QQ22633203具体功能如下!
- 请大虾给说说API函数GetBoundsRect 和DrawText的各个参数具体意义
- 大虾急救....
- 我在一个FORM1中用了一个ADODC控件显示现有的数据库记录,
- [求助]MFC开发的ActiveX,里面有个事件,可网页里响应这个事件
- 这个怎么做呢?
DBRs.Open "select * from STA1 order by 你要排序的字段名称", DBCon
应该是
xlSheet.Cells(i + 22, j) = DBRs.Fields(j - 1).Value
------------------------------------
这是不可靠的,好象这类问题多次讨论过了,数据库本身是用来存取教数据的,不是供用户浏览的,不同的操作环境不同的区域语言可能都会影响到它的排序,而且不同的用户会有不同的排序要求,加上VB操作access数据库是通过数据库引擎,jet又有自身的默认排序规则,所以,可靠的方式就是在查询时order by....
http://download.csdn.net/source/1483928