VB中如何调用Word和Excel??? 可以考虑使用宏.把数据库的查询结果表示在一个文件中,然后调用WORD OR EXCEL 的宏,COPY &PRASE 到VB代码中. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 定义一个OBJECT如dim ss as objectset ss=new word.appcationadd ss.document.textss.secelect.text=text1.text dim x as word.appcation 可以下载一些关于VBA的资料看看,用VBA很容易解决这类问题 什么样的数据库呢? 你可以用ADO或DAO在VB中或在VBA中实现的。如果没无法解决可以MAIL给我。我帮你看看。 如果我已经用ADO得到了记录集(Rs("ID")和Rs("Name")),如何将其输出到Word和Excel,按格式:ID Name1 a2 b3 c请给出具体的代码,多谢! 一下是我工作中用到的一段代码,(系统一直在正常使用)Private Sub cmdPrint_Click()If MsgBox("确认填写的信息正确吗?", vbYesNo + vbQuestion, "询问") = vbNo ThenExit SubEnd If'frmProcess是一个简单的form,当处理需要一定时间,用来显示提示frmProcess.lbMsg.Caption = "正在进行 OLE 处理,稍后......"frmProcess.ShowScreen.MousePointer = vbHourglassOn Error GoTo myerrDim wdApp As New Word.Application 'word 应用对象Dim wdDoc As Document '文档对象Dim wdTable As Table ’表格Set wdDoc = wdApp.Documents.Open(App.Path + "\" + "userdoc.doc")Set wdTable = wdDoc.Tables(1)wdDoc.Words(12).Text = Trim(user_bh.Text)//一下将TEXT中的值赋给表格单元,当然你也可以用ADO记录集wdTable.Cell(1, 2).Range.Text = cz.TextwdTable.Cell(1, 4).Range.Text = yh.TextwdTable.Cell(1, 6).Range.Text = gcrq.TextwdTable.Cell(2, 3).Range.Text = cph.TextwdTable.Cell(2, 5).Range.Text = cjh.TextwdTable.Cell(2, 7).Range.Text = fdjh.TextwdTable.Cell(3, 2).Range.Text = ys.TextwdTable.Cell(3, 4).Range.Text = gcdd.TextwdTable.Cell(3, 6).Range.Text = hgzh.TextwdTable.Cell(4, 2).Range.Text = cx.TextwdTable.Cell(4, 4).Range.Text = bdh.TextwdTable.Cell(4, 6).Range.Text = nsrq.TextwdTable.Cell(5, 2).Range.Text = hth.TextwdTable.Cell(5, 4).Range.Text = kahao.TextwdTable.Cell(5, 6).Range.Text = fkfs.TextwdTable.Cell(6, 2).Range.Text = sprq.TextwdTable.Cell(6, 4).Range.Text = bxgs.TextwdTable.Cell(6, 6).Range.Text = fjx.TextwdTable.Cell(7, 2).Range.Text = sxr.TextwdTable.Cell(7, 4).Range.Text = slr.TextwdTable.Cell(8, 3).Range.Text = yh.TextwdTable.Cell(8, 5).Range.Text = xb.TextwdTable.Cell(8, 7).Range.Text = sr.TextwdTable.Cell(9, 2).Range.Text = lxdh.Text & " " & lxsj.TextwdTable.Cell(9, 4).Range.Text = jg.TextwdTable.Cell(10, 2).Range.Text = sfzh.TextwdTable.Cell(10, 4).Range.Text = zy.TextwdTable.Cell(11, 2).Range.Text = gzdw.TextwdTable.Cell(11, 4).Range.Text = syqy.TextwdTable.Cell(12, 2).Range.Text = txdz.TextwdTable.Cell(13, 2).Range.Text = jtzk.TextwdTable.Cell(14, 2).Range.Text = bz.TextIf rs.State = adStateOpen Thenrs.CloseEnd If'读服务记录Dim sSql As StringsSql = "select * from servicerec where user_bh='" & user_bh.Text & "' order by fwrq"rs.Open sSql, conn, adOpenStatic, adLockReadOnlyDim nLoop As IntegerDim I As IntegerIf rs.RecordCount > 16 ThennLoop = 16ElsenLoop = rs.RecordCountEnd If//以下就是通过ADO记录集来填数据的For I = 1 To nLoop '填服务记录到模板 wdTable.Cell(16 + I, 1).Range.Text = rs("fwrq") wdTable.Cell(16 + I, 2).Range.Text = rs("fwnr")rs.MoveNextNext IwdDoc.SaveAs App.Path & "\" & "temp.doc"wdDoc.PrintOut ’打印'wdDoc.SaveAs App.Path & "\" & "temp.doc"Unload frmProcessScreen.MousePointer = vbDefaultwdDoc.Close'wdApp.Quit 要此句的话,要提示Exit Submyerr:Unload frmProcessScreen.MousePointer = vbDefaultDisplayVbErrEnd Sub你可以到word或excel里录制宏,看生存的宏代码,对你很有帮助! vb Listbox 怎样固定选中一项或N项 vb 连接数据库的效率问题,谢谢 小弟论坛开张了,请大家有空去坐坐阵!(注:是动网论坛,小弟无能力自己编) 怎怎样使vb的datrpt自定义成横向、A4纸张,高分300分 请教高手 3个问题 这是个简单的问题????……呵呵 请问vb如何设置excel的允许调整A4/Letter纸型属性? 簡單問題,50分求助! 循环中的信息显示问题? VC初学者问题 ★★★★★最难的问题★★★★★,VB高手请进! 请问!论坛上的帖子能打包下载吗?
如dim ss as object
set ss=new word.appcation
add ss.document.text
ss.secelect.text=text1.text
你可以用ADO或DAO在VB中或在VBA中实现的。
如果没无法解决可以MAIL给我。我帮你看看。
ID Name
1 a
2 b
3 c请给出具体的代码,多谢!
If MsgBox("确认填写的信息正确吗?", vbYesNo + vbQuestion, "询问") = vbNo Then
Exit Sub
End If
'frmProcess是一个简单的form,当处理需要一定时间,用来显示提示
frmProcess.lbMsg.Caption = "正在进行 OLE 处理,稍后......"
frmProcess.Show
Screen.MousePointer = vbHourglass
On Error GoTo myerr
Dim wdApp As New Word.Application 'word 应用对象
Dim wdDoc As Document '文档对象
Dim wdTable As Table ’表格
Set wdDoc = wdApp.Documents.Open(App.Path + "\" + "userdoc.doc")
Set wdTable = wdDoc.Tables(1)
wdDoc.Words(12).Text = Trim(user_bh.Text)//一下将TEXT中的值赋给表格单元,当然你也可以用ADO记录集
wdTable.Cell(1, 2).Range.Text = cz.Text
wdTable.Cell(1, 4).Range.Text = yh.Text
wdTable.Cell(1, 6).Range.Text = gcrq.Text
wdTable.Cell(2, 3).Range.Text = cph.Text
wdTable.Cell(2, 5).Range.Text = cjh.Text
wdTable.Cell(2, 7).Range.Text = fdjh.Text
wdTable.Cell(3, 2).Range.Text = ys.Text
wdTable.Cell(3, 4).Range.Text = gcdd.Text
wdTable.Cell(3, 6).Range.Text = hgzh.Text
wdTable.Cell(4, 2).Range.Text = cx.Text
wdTable.Cell(4, 4).Range.Text = bdh.Text
wdTable.Cell(4, 6).Range.Text = nsrq.Text
wdTable.Cell(5, 2).Range.Text = hth.Text
wdTable.Cell(5, 4).Range.Text = kahao.Text
wdTable.Cell(5, 6).Range.Text = fkfs.Text
wdTable.Cell(6, 2).Range.Text = sprq.Text
wdTable.Cell(6, 4).Range.Text = bxgs.Text
wdTable.Cell(6, 6).Range.Text = fjx.Text
wdTable.Cell(7, 2).Range.Text = sxr.Text
wdTable.Cell(7, 4).Range.Text = slr.Text
wdTable.Cell(8, 3).Range.Text = yh.Text
wdTable.Cell(8, 5).Range.Text = xb.Text
wdTable.Cell(8, 7).Range.Text = sr.Text
wdTable.Cell(9, 2).Range.Text = lxdh.Text & " " & lxsj.Text
wdTable.Cell(9, 4).Range.Text = jg.Text
wdTable.Cell(10, 2).Range.Text = sfzh.Text
wdTable.Cell(10, 4).Range.Text = zy.Text
wdTable.Cell(11, 2).Range.Text = gzdw.Text
wdTable.Cell(11, 4).Range.Text = syqy.Text
wdTable.Cell(12, 2).Range.Text = txdz.Text
wdTable.Cell(13, 2).Range.Text = jtzk.Text
wdTable.Cell(14, 2).Range.Text = bz.Text
If rs.State = adStateOpen Then
rs.Close
End If
'读服务记录
Dim sSql As String
sSql = "select * from servicerec where user_bh='" & user_bh.Text & "' order by fwrq"
rs.Open sSql, conn, adOpenStatic, adLockReadOnly
Dim nLoop As Integer
Dim I As Integer
If rs.RecordCount > 16 Then
nLoop = 16
Else
nLoop = rs.RecordCount
End If
//以下就是通过ADO记录集来填数据的
For I = 1 To nLoop '填服务记录到模板
wdTable.Cell(16 + I, 1).Range.Text = rs("fwrq")
wdTable.Cell(16 + I, 2).Range.Text = rs("fwnr")
rs.MoveNext
Next I
wdDoc.SaveAs App.Path & "\" & "temp.doc"
wdDoc.PrintOut ’打印
'wdDoc.SaveAs App.Path & "\" & "temp.doc"
Unload frmProcess
Screen.MousePointer = vbDefault
wdDoc.Close
'wdApp.Quit 要此句的话,要提示
Exit Sub
myerr:
Unload frmProcess
Screen.MousePointer = vbDefault
DisplayVbErr
End Sub
你可以到word或excel里录制宏,看生存的宏代码,对你很有帮助!