+ -
当前位置:首页 → 问答吧 → [分享]WORD中的数据库操作(WORD-ADO-FOXPRO DBF)

[分享]WORD中的数据库操作(WORD-ADO-FOXPRO DBF)

时间:2005-06-14

来源:互联网

最近一直在研究一些数据库的问题,关于WORD如何通过ADO访问FOXPRO DBF文件的事,经笔者搜索与探索,将以下代码奉上,供后来者习之.

'* +++++++++++++++++++++++++++++'* Created By SHOUROU@ExcelHome 2005-6-14 8:08:47'仅测试于System: Windows NT Word: 9.0 Language: 2052'^The Code CopyIn [ThisDocument-ThisDocument]^''* -----------------------------Option Explicit'运行此代码前,请在VBE/工具/引用中勾选:Microsoft ActiveX Data Object 2.5 LibrarySub Example()Dim CNN As New ADODB.Connection, RST As New ADODB.RecordsetDim Stpath As String, strSQL As String, i As Integer, MyString As StringDim ConnStr As StringStpath = "D:\ShouRouTemp"'数据库路径目录,我们操作的对象是"D:\ShouRouTemp\MLC1021.DBF"文件'FoxBase的.DBF文件只相当于Access数据库的表,VBA把.DBF文件所在目录看作一个数据库(相当于.mdb),而该目录下的所有.DBF文件看做表ConnStr = "Driver=Microsoft Visual Foxpro Driver; UID=userID;SourceType=DBF;SourceDB=D:\SHOUROUTEMP"'打开指定数据库CNN.Open ConnStr'设置SQL查询条件,本例为选择MLC1021表中的所有字段strSQL = "SELECT * FROM MLC1021"'读取数据库的记录集RST.Open strSQL, CNN, adOpenKeyset, adLockOptimistic, adCmdTextWith RSTDo While Not .EOF'获取指定列字段的数据,并去除其中的空格MyString = MyString & Trim(.Fields("unit_tab_i")) & vbTab & Trim(.Fields("b02")) & vbCrLf.MoveNext'向下移动记录指针'Loop.Close'关闭数据表End WithSet RST = Nothing'释放对象Set CNN = Nothing'释放对象Selection.InsertAfter MyString'将文本插入End Sub'----------------------

以上代码在WORD 2000中通过.

作者: 守柔   发布时间: 2005-06-14

太高深,不过还是拷下来!谢了!

高手,就是高手!

作者: konggs   发布时间: 2005-06-14

我又要来给老大沷冷水了,数据库如果与EXCEL进行转换还是挺管用的,但和WROD进行链接是否有点。。。。。了

当然,对于特殊的用户,这是必需的(类似于邮件合并那样),但对于大多数用户,这个东东是否有些“超现实”?

作者: sdbbsdbb   发布时间: 2005-06-14

楼上,数据库与WROD进行链接是很的意义的东东,不像你想的那样只是邮件合并!!!

不过还是要给守柔兄提点建议——VF现在还有必要学吗?小不如Access大不如SQL,所以现在的*.NET中没有它的地盘!

守柔兄,不Access就SQL吧!

作者: 七叶一枝梅   发布时间: 2005-06-14

那楼上能否介绍一下这种WORD与数据库进行连接的实际应用?

我接触的东东并不广,因此视野。。。。。。

盼复

作者: sdbbsdbb   发布时间: 2005-06-15

回“山地步兵” 楼上:

比如说:从题库(数据库)随机抽题,在word中生成试卷;

再比如说:文档的分类存档等……

作者: 七叶一枝梅   发布时间: 2005-06-18

我认为,斑竹提供的是方法,不一定要用fox,可以用 odbc 这样什么数据都可以读。

有一点疑问“Selection.InsertAfter MyString'将文本插入 “。插入的位置在那。在word 中没有 excel 那样的坐标可以控制写入位置。我个人理解,是在光标处,如果有很多数据,如果写入到各自的位置。请斑竹指点,谢谢!

作者: scorpoin   发布时间: 2005-06-18

office所有组件编程都是相通的,楼主一通百通的功力令人叹为观至。

作者: zzl   发布时间: 2005-06-18

学到用时方恨少,五天前我还在泼老大冷水,五天后我得向老大求教如何将DBF文件转化为其他格式了(不是用系统提供,而是用VBA).

真该打自己一巴掌

作者: sdbbsdbbsd   发布时间: 2005-06-18

很有用.我用准备用他做题库

作者: dzdoc   发布时间: 2005-06-18

一般来说都是链接SQL2K,ORACLE,SYBASE等直接输出数据分析文档的应用较多,很感谢版主。

作者: chenwintek   发布时间: 2005-06-18

谢谢

作者: yz1978   发布时间: 2005-07-04

这篇文章对偶的帮助一定很大!谢谢守柔版主的奉献!

作者: llsshh   发布时间: 2005-07-29

刚才仔细研究了守柔版主的文章,真是启发不小啊!请允许我班门弄斧,把自己的体会写下来,希望大家指正。

如果要和SQL连,需要在-“工具”-“引用”-选中“Microsoft ActiveX Data Objects 2.8 Library”和“Microsoft ActiveX Data Objects RecordSet 2.8 Library”,还要改一下ConnStr = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Password=**;Initial Catalog=**;Data Source=**",当然在**处修改成自己的数据库就行了。

我只测试了与SQL的连接,相信版主的代码可以和很多数据库相连!

再一次感谢守柔版主!真的很佩服您的学识和精神!

作者: llsshh   发布时间: 2005-07-29

谢谢守柔版主的奉献!

作者: hangye   发布时间: 2011-06-12