|
呵呵,各位老大的方法都不错,俺也是参照这种来的还有一种思路,是利用range.find 和 replace的方法比如文本中用年份查找替换文本中“YYYY”的方法,谁测试看看另外可使用如下语句消除域的黑底框 vsWordDoc.FormFields.Shaded = False
'输出行政介绍信
Sub WordXZX(Xno As String)
Dim vsWordApp As Word.Application
On Error Resume Next
Err.Clear
Set vsWordApp = GetObject(, "Word.Application")
If Err.Number Then
Set vsWordApp = CreateObject("Word.Application")
Err.Clear
End If
'If vsWordApp.Visible Then vsWordApp.Visible = False
On Error GoTo Err_cmd报表2_Click:
'vsWordApp.Visible = False
Dim WordTem As String, WordOut As String
WordTem = IIf(Len(Application.CurrentProject.Path) = 3, Left(Application.CurrentProject.Path, 2), Application.CurrentProject.Path) & "\rpt\行政介绍信.doc"
Dim vsWordDoc As Word.Document
vsWordApp.Documents.Add Template:=WordTem
Set vsWordDoc = vsWordApp.ActiveDocument
'取得需填入的相关变量值
Dim Num As String '文件编号
Dim Blsj As String '审批时间
Dim BZ As String '备注
Dim XM() As String '姓名
Dim XB() As String '性别
Dim RW() As String '入伍时间
Dim JX() As String '警衔
Dim DC() As String '调出单位
Dim Dr() As String '调入单位
Dim DC2() As String '调出单位明细
Dim Dr2() As String '调入单位明细
Dim Conn As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim Strsql As String
Dim i As Integer, j As Integer
Set Conn = CurrentProject.Connection
Set Rs = New ADODB.Recordset
Strsql = "select * from qry兵_调 where 选择=true and 文件编号='" & Xno & "'"
Rs.Open Strsql, Conn, adOpenKeyset
If Not Rs.EOF Then
Num = IIf(IsNull(Rs!文件编号), "", Rs!文件编号)
Blsj = IIf(IsNull(Rs!审批时间), Date, Rs!审批时间)
BZ = IIf(IsNull(Rs!备注), "", Rs!备注)
Num = "[" & Year(Blsj) & "]" & "第" & Xno
WordOut = IIf(Len(Application.CurrentProject.Path) = 3, Left(Application.CurrentProject.Path, 2), Application.CurrentProject.Path) & "\temp\行政介绍信_" & Num & ".doc"
Dim Xdd As String '函发单位
Xdd = IIf(IsNull(Rs!调入单位), "", Rs!调入单位)
Dim XRscount As Integer '定义士兵宗数
XRscount = Rs.RecordCount
ReDim XM(XRscount) As String '姓名
Dim Xmall As String
ReDim XB(XRscount) As String '性别
ReDim RW(XRscount) As String '入伍时间
ReDim JX(XRscount) As String '警衔
ReDim DC(XRscount) As String '调出单位
ReDim Dr(XRscount) As String '调入单位
ReDim DC2(XRscount) As String '调出单位
ReDim Dr2(XRscount) As String '调入单位
For i = 1 To XRscount
Xmall = Xmall & " " & IIf(IsNull(Rs!姓名), "", Rs!姓名)
XM(i) = IIf(IsNull(Rs!姓名), "", Rs!姓名)
XB(i) = IIf(IsNull(Rs!性别), "", Rs!性别)
RW(i) = IIf(IsNull(Rs!入伍时间), "", Rs!入伍时间)
JX(i) = IIf(IsNull(Rs!警衔), "", Rs!警衔)
DC(i) = IIf(IsNull(Rs!调出单位), "", Rs!调出单位)
Dr(i) = IIf(IsNull(Rs!调入单位), "", Rs!调入单位)
|
|