VB 打印功能 求源码

yujianron 2011-10-13 08:24:20
我用VB做了个程序,是可以查数据库的(ACC数据库)

然后显示在DATAGRID控件里面,

然后我想做个打印按钮,可以打印DATAGRID 里面的内容,

求源码或教程,最好视频教程
...全文
114 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yujianron 2011-11-03
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 king06 的回复:]
VB code
On Error Resume Next
Dim i As Long, j As Long
dim xlsApp as object
Set xlsApp = CreateObject("Excel.Application")
xlsApp.Visible = True
xlsApp.Workbooks.Add
xls……
[/Quote]


要不要引用什么控件还是调用其他什么的要不?
king06 2011-10-19
  • 打赏
  • 举报
回复
On Error Resume Next
Dim i As Long, j As Long
dim xlsApp as object
Set xlsApp = CreateObject("Excel.Application")
xlsApp.Visible = True
xlsApp.Workbooks.Add
xlsApp.Sheets("Sheet1").Select
DataGrid1.Row = 0: i = 1

Dim rs As ADODB.Recordset
Set rs = DataGrid1.DataSource
If Not rs.EOF Then rs.MoveFirst
Do While Not rs.EOF
For j = 1 To DataGrid1.Columns.Count
xlsApp.Cells(i, j) = rs.Fields(j - 1)
Next

i = i + 1
rs.MoveNext
Loop

' xlsApp.ActiveSheet.Range("A1").CopyFromRecordset DataGrid1.DataSource
' xlsApp.ActiveSheet.Range("A1").CopyFromRecordset Adodc1.Recordset

If xlsApp.ActiveWorkbook.Saved = False Then
xlsApp.ActiveWorkbook.SaveAs "C:\0.xls"
End If
xlsApp.Quit
Set xlsApp = Nothing
MsgBox "导出完毕~ "
大概就是这么个样子了,注释部分快速导入excel
yujianron 2011-10-18
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 king06 的回复:]

引用 5 楼 yujianron 的回复:
引用 3 楼 king06 的回复:

Dim rs As ADODB.Recordset
Set rs = DataGrid1.DataSource
If Not rs.EOF Then rs.MoveFirst
Do While Not rs.EOF
For j = 1 To DataGrid1.Columns.Count
Prin……
[/Quote]
不好意思,我是新手,我连那个要引用什么都不懂的呢
麻烦指点一下,谢谢
king06 2011-10-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yujianron 的回复:]
引用 3 楼 king06 的回复:

Dim rs As ADODB.Recordset
Set rs = DataGrid1.DataSource
If Not rs.EOF Then rs.MoveFirst
Do While Not rs.EOF
For j = 1 To DataGrid1.Columns.Count
Print rs.Fiel……

这样打印出来的只是……
[/Quote]
要格式,就输出到excel吧, 输出赋值跟以上代码类似
循环里面改下xlsApp.Cells(i, j) = rs.Fields(j - 1)
代码不可能给你写全...
king06 2011-10-14
  • 打赏
  • 举报
回复
    Dim rs As ADODB.Recordset
Set rs = DataGrid1.DataSource
If Not rs.EOF Then rs.MoveFirst
Do While Not rs.EOF
For j = 1 To DataGrid1.Columns.Count
Print rs.Fields(j - 1) '打印格式及位置自己调
Next

i = i + 1
rs.MoveNext
Loop
yujianron 2011-10-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wallescai 的回复:]

datagrid倒是不怎么用.
不过要打印的话也不会直接按照表格打吧? 总要另外设计一个输出格式吧.
[/Quote]
请问具体怎么做,能给个实例吗
熊孩子开学喽 2011-10-14
  • 打赏
  • 举报
回复
datagrid倒是不怎么用.
不过要打印的话也不会直接按照表格打吧? 总要另外设计一个输出格式吧.
  • 打赏
  • 举报
回复
vsfgrid可以打印,问下king06
yujianron 2011-10-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 king06 的回复:]

Dim rs As ADODB.Recordset
Set rs = DataGrid1.DataSource
If Not rs.EOF Then rs.MoveFirst
Do While Not rs.EOF
For j = 1 To DataGrid1.Columns.Count
Print rs.Fiel……
[/Quote]
这样打印出来的只是表格里面的文字,而不带表格外框对吗?
yujianron 2011-10-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 veron_04 的回复:]

建议把数据填入Excel,然后调用EXCEL打印功能,简单方便。且格式好调
[/Quote]
这招不错,但具体不会弄,求源码或实例。
贝隆 2011-10-13
  • 打赏
  • 举报
回复
建议把数据填入Excel,然后调用EXCEL打印功能,简单方便。且格式好调

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧