Access交流中心

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

求大师治病!

艹右小土  发表于:2014-03-26 11:47:13  
复制

我要向word中导入表格式的报表,写下面一段代码,刚开始运行正常,后来不知什么原因,就出错了,红色部分出错,系统提示"至少一个参数没有被指定值“,求大师们帮忙看一下下面的代码,帮助修改一下!谢谢了!


Private Sub Command2_Click()

    On Error GoTo 打印时间
    Dim objApp          As Object 'Word.Application
    Dim objDoc          As Object 'Word.Document
    Dim objTable        As Object 'Word.Table
    Dim strTemplates    As String '模板文件路径名
    Dim strFileName     As String '将数据导出到此文件
    Dim I As Integer
        
    strTemplates = CurrentProject.Path & "\模板\登记表.dotx"
    
 '打开模板文件
    Set objApp = CreateObject("Word.Application")
    objApp.Visible = True
    Set objDoc = objApp.Documents.Open(strTemplates, , True)
 
    lngI = Nz(DCount("*", "打印查询"), 0)                                                
        Set objTable = objDoc.Tables(1)
        For I = 1 To lngI - 1
            Set rowNew = objTable.Rows.Add(beforeRow:=objTable.Rows(2))
        Next
  '向Word中对应表格单元格写入数据
     I = 2
        With objTable
            Set rst = CurrentProject.Connection.Execute("select 名称,生产厂家,产品规格 from 打印查询")
            Do While Not rst.EOF
                .Cell(I, 1).Range = rst("名称")
                .Cell(I, 2).Range = rst("生产厂家")
                .Cell(I, 3).Range = rst("产品规格")
               I = I + 1
            rst.MoveNext
            Loop
            rst.Close
            Set rst = Nothing
        End With
    
打印时间:
       With objApp.Application.Selection
            .Find.ClearFormatting
            .Find.Replacement.ClearFormatting
                With .Find
                   .Text = "{单位}"
                    .Replacement.Text = Me.Text3
                End With
                .Find.Execute Replace:=wdReplaceAll
                With .Find
                    .Text = "{时间}"
                    .Replacement.Text = Me.Text5
                 End With
                .Find.Execute Replace:=wdReplaceAll
                 With .Find
                    .Text = "{经办人}"
                    .Replacement.Text = Me.Text7
                 End With
                .Find.Execute Replace:=wdReplaceAll
         End With
  End Sub

 

Top
cspa 发表于:2014-03-26 12:21:42

查查是否由下列原因引起的:

1、名称,生产厂家,产品规格 这些字段是否都在“打印查询”中?有无名称写错?

2、这些字段中是否都有值?有无为null的?

3、执行 select 名称,生产厂家,产品规格 from 打印查询 后是否没有符合的记录,即rst是空记录集?
           



艹右小土 发表于:2014-03-26 14:30:34
字段都有,名字也对,我是做的一个查询,对应的表中有选择字段,当选择为f时,查询中就有对应的记录,然后打印查询中的记录!问题是,我在表中选择几条记录,生成word报表中就有几条空记录,就是没有字段中的值,不知什么原因?

cspa 发表于:2014-03-26 14:57:18

Set rst = CurrentProject.Connection.Execute("select 名称,生产厂家,产品规格 from 打印查询")
改为:

Set rst = Currentdb..OpenRecordset("select 名称,生产厂家,产品规格 from 打印查询")

rst.MoveFirst

试试。

再不行,上传实例看看。

 



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