声明一个EXCEL的对象,然后调用它的Open方法打开一个文件,或者直接使用printOut函数输出,具体对于EXCEL的编程可以参考EXCEL开发大全这本书。
解决方案 »
- 关于VB使用ADO查询EXCEL的难题,期盼高手指点
- 两个不同的数据库之间,如何互访?(ado)
- VB如何实现数据库备份
- 超难问题:如何取得这个网址的附加码后面的数字的URL?
- 紧急求助:vb+myodbc连接mysql,在执行。。。。
- 这段JAVA代码怎么转换成VB代码
- vb6中的Print函数如何在窗体上显示UNICODE编码的文字,比如韩文之类的
- sql语句中select的子句union cursor使用问题,恳求高手援手!
- 有没有高手知道 速达2000+Pro 进销存软件的业务导航窗体是用什么方法做出来的?小弟在此先谢过了
- 在VBDataReport中如何实现一个记录集分为两列打印???
- 该怎么定义Ctrl+小键盘上某个键为热键呢??请指教
- 数据环境的问题
其实在VB中可以用VBA的,就引用EXCEL的对象库。并不麻烦。所以关于打印的问题,请看我前几天在CSDN发了一个文章,如下:这个程序可以将下图表格中(mshflexgrid控件)的
数据生成一个excel表,这样可以省去用vb
来编写打印排版程序的麻烦。想一想自已动
手用vb或delphi写一个像excel的排版功能
一样的东东,是多么的恐怖!!。所以嘿嘿。。http://go.163.com/~chunpeng/project/grid.jpg原程序下载:
因为我用的是access2000的样本数据库---
northwind.mdb 所以安了office2000的可以
下载下面这个:(不代northwind.mdb,下载后请将
office2000里那个copy到这个程序的目录中就行)
go.163.com/~chunpeng/project/printexcela.zip没有northwind.mdb的可以下载这个:
go.163.com/~chunpeng/project/printexcel.zip
高手可以直接看下面,如果用vb做过数据库应
用的朋友给点意见,这种方法我曾在多个mis
系统中见过,只不过生成的是word文档。这是
一种比较典型的方法。public withevents rs as adodb.recordset
dim conn as adodb.connection
dim mypanel as panelprivate sub form_load()
set rs = new adodb.recordset
set conn = new adodb.connection
conn.cursorlocation = aduseclient
conn.open "provider=microsoft.jet.oledb.4.0;data source=" + app.path + "\northwind.mdb;"
rs.open "select *from 产品", conn, adopenstatic, adlockoptimistic
set msgrid1.datasource = rsstatusbar1.panels.clear
set mypanel = statusbar1.panels.add(, "record")
mypanel.autosize = sbrcontents
mypanel.text = "总共有" & " " & rs.recordcount & " " & "条记录"
end sub
private sub form_resize()
with msgrid1
.left = 0
.top = toolbar1.height
.width = me.scalewidth - 10
.height = me.scaleheight - (statusbar1.height + 700)
end with
end subprivate sub print_cmd_click()
form2.show
dim myexcel as new excel.application, i, j, k as integer, col as string
with myexcel
on error goto excle
.application.visible = false
.workbooks.add
'***********画字段************
j = 0
'example: b2 ----g2 '列 本程序从b列,和第2行开始
for i = 66 to (66 + rs.fields.count - 1) '从rs中头一个字段到最后一个
col = chr(i) & "2" 'chr(66)就是b
'debug.print col
range(col).select
activecell.formular1c1 = rs.fields(j).name '
j = j + 1
next i
'****************************
'*************以先横后竖顺序画表***************
k = 0
rs.movefirst
doevents
for j = 3 to 3 + rs.recordcount '本程序从b3开始,所以用3
k = 0
for i = 66 to (66 + rs.fields.count - 1)
col = chr(i) & cstr(j) '得到目标表格的值如 c3
range(col).select
activecell.formular1c1 = rs.fields(k)
k = k + 1
next i
on error resume next
form2.probar.value = form2.probar.value + 1
rs.movenextif rs.eof = true then
unload form2
.application.visible = true
end ifnext j
'************************************
end with
exit subexcle:
msgbox ("您没有安装excle2000,请先安装excel2000")
end sub