|
有时候,一些不太熟悉我的版友会觉得,“哇,你的Access怎么学得这么好?在哪里学的?学了多久?有什么推荐的书或者网站视频吗?”
对于他们连珠炮似的发问,有时候我真不知道该怎么回答,姑且闲扯一下吧:
1、事实上,我可能算是滥竽充数的版主了吧。个人觉得,Access学得并不算很好,大概够用的样子。
2、至于在哪里学?我当时是在市面上买了一本书,照着章节做了一遍。然后一些不懂的东西就在论坛上提问。
3、学了多久?一开始我是学了三个月,感觉有些飘飘然了,这窗体什么的,也不难啊。。。然后开发系统的时候,才发现,数据库理论不太熟,建表,写查询,建窗体,发现缺少一些字段,修改表结构,修改查询,又建窗体,发现还有功能无法实现,继续修改表,修改查询……最后不得不推翻重来。真正开始做系统,差不多半年吧。如果只是学着做一些小工具来改善工作效率(例如,几乎都是外部数据的情况下),那么,大约三个月就够了。如果开发系统,悟性高的话,也许三个月也够了。我算是比较驽钝的了。
4、推荐的书。大多数人会推荐《Access 2013宝典》(反正我没认真看过,章节倒是比较详细。)。我的建议是,如果只是开发一些小工具改善工作效率的,随便在市面上买一本就够了。如果需要开发软件的话,那么还是用那本“宝典”吧。至于网站视频,我没有什么推荐的,进阶的阶段,可以看看本站的视频。而网站则推荐本站。各种解决问题的应用示例,还有我以前写的“新手入门”系列扫盲贴,也许对新手有所裨益。
要学好一样东西,都是需要花时间的,还需要自己去寻找一切的学习机会,进行大量的练习。这没什么捷径的。如果只是一次两次需求,当下伸手党倒也无妨。但如果经常需要它来改善工作的话,我觉得还是花点时间吧。天分只是决定你的下限,努力才是决定你的上限的。
我说过,我的Access学得并不太好,但通常并不会影响我帮大家解决问题。这是为什么呢?因为我“善假于物”啊。就拿前段时间一件事来说吧:
前段时间,有人在QQ群问起,如何以Excel作为数据源,用邮件合并的方式,将文件名,图片插入到word当中。效果大体如下:
当时也思考过这个问题,邮件合并大概也不算太复杂,但看了他给的模板,最后有个表格需要填入汇总数据。
邮件合并时插入图片,处理起来并不算一件容易的事情,另外汇总数据更加麻烦(后面如果有时间,在不添加汇总表的情况下,我再试试)。
所以,只能考虑用VBA来实现了。
现在问题是,我对于Word对象的各种属性方法很陌生。咋办?去找demo,帮助文件等等啊。简单点的话,我们可以用word录制宏去把一些对象方法属性提出来,不是么?
还是老规矩,先上代码:
- Sub wirteWordData()
- '新建文件系统对象
- Dim fso As New FileSystemObject
- '根目录
- Dim objRoot As Folder
- '子文件夹
- Dim objSubFold As Folder
- '子文件夹内的文件
- Dim objFile As File
- '这里不用New,目的在于后续方便关闭或者退出
- Dim objWord As Word.Application
- 'Word文档
- Dim objDoc As Word.Document
- '选区
- Dim objSelection As Word.Selection
- '序号
- Dim i As Long
- '根目录
- Set objRoot = fso.GetFolder(CurrentProject.Path)
- '子文件夹
- For Each objSubFold In objRoot.SubFolders
- '子文件夹中所有文件
- i = 1
- Set objWord = New Word.Application
- '创建一个Word文档
- Set objDoc = objWord.Documents.Add
- '遍历子文件夹下的文件
- For Each objFile In objSubFold.Files
- '从第一行开始插入数据,依次插入序号,段落,图片名称,图片
- With objDoc.ActiveWindow.Selection
- .TypeText i
- .TypeParagraph
- .TypeText objFile.Name
- .TypeParagraph
- .InlineShapes.AddPicture objSubFold.Path & "" & objFile.Name
- End With
- i = i + 1
- Next
- '插入汇总表格,调整为默认格式(忽略倒数第二个参数则边框线不可见)。
- objDoc.Tables.Add objDoc.ActiveWindow.Selection.Range, 2, 2, wdWord9TableBehavior, wdAutoFitContent
- objDoc.Tables(1).Select
- '设置段落居中
- Set objSelection = objDoc.ActiveWindow.Selection
- With objSelection
- .ParagraphFormat.Alignment = wdAlignParagraphCenter
- End With
- '选择左上角单元格
- objDoc.Tables(1).cell(1, 1).Select
- Set objSelection = objDoc.ActiveWindow.Selection
- With objSelection
- '依次向右移动光标填入数据。
- .TypeText "设计师"
- .MoveRight wdCharacter, 1
- .TypeText "违规个数"
- .MoveRight wdCharacter, 1
- .MoveRight wdCharacter, 1
- .TypeText objSubFold.ShortName
- .MoveRight wdCharacter, 1
- .TypeText i
- End With
- '保存Word文件并退出Word程序,以便下一个子文件夹重新操作
- objDoc.SaveAs2 CurrentProject.Path & "" & objSubFold.ShortName & ".docx"
- objDoc.Close
- objWord.Quit
- Next
- '完成后弹出提示。
- MsgBox "done"
- End Sub
复制代码
由于注释已经很清楚了,所以这里就不再详细说明实现的思想过程了。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|