Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

关于从ACCESS插入WORD数据的错误问题

随心飞去  发表于:2017-02-06 15:50:02  
复制

现遇到了一个问题,数据库中把数据插入到WORD文档,由于行不的不一致的问题,使得运行到一定的位置时,发生错误,请各痊老师帮忙解决。

代码如下:



Tb.Cell(1, 1).Range = "ACCESS"

Tb.Cell(1, 2).Range = "工程物资检验及验收计划"

Tb.Cell(1, 3).Range = "TY-04-JL-10"

Tb.Cell(2, 1).Range = "项目名称"

Tb.Cell(2, 2).Range = IIf(Me.Text1 <> "", Me.Text1,"")

Tb.Cell(2, 3).Range = "编制"

Tb.Cell(2, 4).Range = IIf(Me.编制人 <> "", Me.编制人, "")

Tb.Cell(2, 5).Range = "编制日期"

Tb.Cell(2, 6).Range = IIf(Me.编制日期 <> "", Me.编制日期, "")

'运行到红色时就出现错误了,其它没有问题

Tb.Cell(2, 7).Range = "审批"

Tb.Cell(2, 8).Range = IIf(Me.审批人 <> "", Me.审批人, "")

Tb.Cell(2, 9).Range = "审批日期"

Tb.Cell(2, 10).Range = IIf(Me.审批日期 <> "", Me.审批日期, "")

Tb.Cell(3, 1).Range = "序号"

Tb.Cell(3, 2).Range = "物资名称"

Tb.Cell(3, 3).Range = "材质"

Tb.Cell(3, 4).Range = "规格型号"

Tb.Cell(3, 5).Range = "测量项目"

Tb.Cell(3, 6).Range = "检验要求"

Tb.Cell(3, 7).Range = "执行标准"

Tb.Cell(3, 8).Range = "外委项目"

Tb.Cell(3, 9).Range = "责任人"

Tb.Cell(3, 10).Range = "备注"

�������ش˸���



 

 

Top
MDZZ 发表于:2017-02-06 16:24:21
【Access源码示例】替换方式导出到word模板(含图片)[Access软件网] http://www.accessoft.com/article-show.asp?id=7467

随心飞去 发表于:2017-02-06 17:43:58
示例方法不对,问题在从头起的第二行它变成了二个小行,如果是统一的,我的方法是不成问题的。现在要解决的就是在第二行它变成二小行了,问题就来了。

杜超 发表于:2017-02-09 09:24:33
要注意表格格式写对

随心飞去 发表于:2017-02-09 09:29:03
这二天,看了很多示例,无法完成,能否请老师帮改一下?

宏鹏 发表于:2017-02-09 10:02:46
Tb.Cell(3, 3).Range = "审批"
Tb.Cell(3, 4).Range = IIf(Me.审批人 <> "", Me.审批人, "")
Tb.Cell(3, 5).Range = "审批日期"
Tb.Cell(3, 6).Range = IIf(Me.审批日期 <> "", Me.审批日期, "")

下面的位置自己修改,不知道位置的,可以在word模板鼠标右击,选择表格属性查看行和列

宏鹏 发表于:2017-02-09 10:10:16
西出阳关无故人 发表于:2017-02-09 10:16:53

Private Sub A到W_Click()
    Dim doc As New Word.Application
    Dim Tb As Word.Table
    Dim i As Long
    Dim ii As Long
    Dim Ⅲ As Long
    Dim V As Long

    If Me.Text8 = "" Then  'Text8文本框是选择一个装置的名称,这样下面的数据就是某个装置的数据,此项是必须的选择项。
        Cancel = False
        MsgBox "请选择正确的值"
        Exit Sub
    Else
        doc.Documents.Open FileName:=CurrentProject.Path & "\" & Format(Now(), "yyyy" & "年" & "mm" & "月" & "dd" & "日") & "工程物资检验及验收计划.doc"  '打开更名后的文件。
        doc.Visible = True
        If Me.Text8 = "" Then
            Cancel = False
        Else
            GoTo 50
50:
            Set Tb = doc.ActiveDocument.Tables(1)
            GoTo 500
        End If
500:
        Tb.Cell(1, 1).Range = "ACCESS"
        Tb.Cell(1, 2).Range = "工程物资检验及验收计划"
        Tb.Cell(1, 3).Range = "TY-04-JL-10"

        Tb.Cell(2, 1).Range = "项目名称"
        Tb.Cell(2, 2).Range = IIf(Me.Text1 <> "", Me.Text1, "")
        Tb.Cell(2, 3).Range = "编制"
        Tb.Cell(2, 4).Range = IIf(Me.编制人 <> "", Me.编制人, "")
        Tb.Cell(2, 5).Range = "编制日期"
        Tb.Cell(2, 6).Range = IIf(Me.编制日期 <> "", Me.编制日期, "")

        Tb.Cell(3, 3).Range = "审批"
        Tb.Cell(3, 4).Range = IIf(Me.审批人 <> "", Me.审批人, "")
        Tb.Cell(3, 5).Range = "审批日期"
        Tb.Cell(3, 6).Range = IIf(Me.审批日期 <> "", Me.审批日期, "")

        Tb.Cell(4, 1).Range = "序号"
        Tb.Cell(4, 2).Range = "物资名称"
        Tb.Cell(4, 3).Range = "材质"
        Tb.Cell(4, 4).Range = "规格型号"
        Tb.Cell(4, 5).Range = "测量项目"
        Tb.Cell(4, 6).Range = "检验要求"
        Tb.Cell(4, 7).Range = "执行标准"
        Tb.Cell(4, 8).Range = "外委项目"
        Tb.Cell(4, 9).Range = "责任人"
        Tb.Cell(4, 10).Range = "备注"

        For i = 1 To Me.工程物资检验及验收计划.Form.RecordsetClone.RecordCount
            If i > Tb.Rows.Count Then Exit Sub
            Me.工程物资检验及验收计划.Form.SelTop = i
            Tb.Cell(i + 4, 1).Range = IIf(Me.工程物资检验及验收计划.Controls("序号").Value <> "", Me.工程物资检验及验收计划.Controls("序号").Value, "")
            Tb.Cell(i + 4, 2).Range = IIf(Me.工程物资检验及验收计划.Controls("物资名称").Value <> "", Me.工程物资检验及验收计划.Controls("物资名称").Value, "")
            Tb.Cell(i + 4, 3).Range = IIf(Me.工程物资检验及验收计划.Controls("材质").Value <> "", Me.工程物资检验及验收计划.Controls("材质").Value, "")
            Tb.Cell(i + 4, 4).Range = IIf(Me.工程物资检验及验收计划.Controls("规格型号").Value <> "", Me.工程物资检验及验收计划.Controls("规格型号").Value, "")
            Tb.Cell(i + 4, 5).Range = IIf(Me.工程物资检验及验收计划.Controls("测量项目").Value <> "", Me.工程物资检验及验收计划.Controls("测量项目").Value, "")
            Tb.Cell(i + 4, 6).Range = IIf(Me.工程物资检验及验收计划.Controls("检验要求").Value <> "", Me.工程物资检验及验收计划.Controls("检验要求").Value, "")
            Tb.Cell(i + 4, 7).Range = IIf(Me.工程物资检验及验收计划.Controls("执行标准").Value <> "", Me.工程物资检验及验收计划.Controls("执行标准").Value, "")
            Tb.Cell(i + 4, 8).Range = IIf(Me.工程物资检验及验收计划.Controls("外委项目").Value <> "", Me.工程物资检验及验收计划.Controls("外委项目").Value, "")
            Tb.Cell(i + 4, 9).Range = IIf(Me.工程物资检验及验收计划.Controls("责任人").Value <> "", Me.工程物资检验及验收计划.Controls("责任人").Value, "")
            Tb.Cell(i + 4, 10).Range = IIf(Me.工程物资检验及验收计划.Controls("备注").Value <> "", Me.工程物资检验及验收计划.Controls("备注").Value, "")
        Next
        doc.ActiveDocument.Save
        Set doc = Nothing
        Set Tb = Nothing
    End If
End Sub



西出阳关无故人 发表于:2017-02-09 10:20:32


西出阳关无故人 发表于:2017-02-09 10:30:51

注意,好像相邻行合并(但是没有完全合并)后,行号并没有减少。如第2行。

按行读取,然后按本行的列记数。

 



宏鹏 发表于:2017-02-09 10:39:19
替换方式导出word模板示例,部分单元格变成两小行单元格怎么办[Access软件网]
http://www.accessoft.com/article-show.asp?id=11319

随心飞去 发表于:2017-02-10 21:14:31

谢谢宏鹏及西出阳关无故人二位老师,宏鹏老师给出了方法及说明的问题所在,而西出阳关无故人帮助解决了并写出了正确的代码。最佳答案二选一,实在为难。只好看到信息的第一时间来选择了,不管怎都非常感谢二位老师的指导与帮助。在此再三谢过。最佳答案我选择宏鹏老师。



总记录:11篇  页次:1/1 9 1 :