Access交流中心

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

请教一个关于word导入导出系列-替换方式导出的问题

wilstar  发表于:2016-06-27 16:02:48  
复制

看了金宇写的【access源码示例】-word导入导出系列-替换方式导出(链接:http://www.accessoft.com/article-show.asp?id=7264)后,我试着在其基础上进行修改或者联系。
在动手的过程中,我发现存在如下问题:
1)这个实例中中,只涉及到一个模板,若是存在两个或以上的模板,只能通过修改vba代码的方式进行,能不能通过点击某个按钮,打开模板文件库,选择其中相应的模板,即可自动生成相应的文件?
2)接着第一个问题,若是有两个窗体,那么相应的替换代码就需要做两份,这样子导致VBA代码整体比较臃肿,能不能多个窗体共用一个替换代码?
请哪位能帮忙解下

 

Top
煮江品茶 发表于:2016-06-27 16:29:01

你说的这是一个约定还是配置的问题。在程序开发中通常认为约定优于配置。具体到你的问题上来说,要想使word导入导出的代码通用性更好,首先要构造word模版与Access中的数据表(或查询)之间的规律性,这个构造的规律性就是一种人为的约定。有了一系列的约定就可以用一组代码导出导出到多种不同的word模版上去。

所以核心问题是你能否归纳总结出word报表与数据库之间的规律,并将规律进行约定。




wilstar 发表于:2016-06-28 09:05:39
说的有道理,请问有没有可供参考的例子?

煮江品茶 发表于:2016-06-28 10:29:13
wilstar 发表于:2016-06-28 14:30:40

我看了您给的例子,很有借鉴意义,也值得好好学习


其实,我最简单的想法是:以上面提供的替换例子为例,这个是指定了具体的文件模板名称(具体代码如下:    strTemplates = CurrentProject.Path & "\word模板\采购订单模板.doc"),我想知道的是,如果word模板文件夹下有多个模块,如果通过快速选择,指定相应模板,并将数据导出到word中(比如说:点击导出按钮后,打开相应的模板文件夹,点击模板文件夹内相应的文件,就能实现数据向特定模板的导出


Private Sub 导出word_Click()
On Error GoTo Err_cmdExportToWord_Click
    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 D_Price As Currency
        
    strTemplates = CurrentProject.Path & "\word模板\采购订单模板.doc"
    
    '通过文件对话框生成另存为文件名
    With FileDialog(2)  'msoFileDialogSaveAs
        .InitialFileName = CurrentProject.Path & "\" & Me.订单编号 & "-采购订单.doc"
        If .Show Then strFileName = .SelectedItems(1)
    End With
    
    '如果对话框被取消,则变量没有被赋值,退出过程
    If strFileName = "" Then Exit Sub
    
    '文件名必须包括“.doc”的文件扩展名,如没有则自动加上
    If Not strFileName Like "*.doc" Then strFileName = strFileName & ".doc"



煮江品茶 发表于:2016-06-28 16:15:30
多个什么模版?比如?

wilstar 发表于:2016-06-28 16:50:28

我做个模板的范例传上来吧

比如在这个文件里,除了原来的——采购订单模板.doc,现在又增加了——订单合同模板.doc。如果希望导出:订单合同模板.doc的话,只能再增加单独增加新的代码。感觉很不方便,这里列举的只是两个模板的情况,如果模板数量不停增加,那么就需要不停的增加代码,感觉太麻烦。所以提出了上面的问题。


点击下载此附件



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