利用VBA与ADO从数据库中读出文本到当前文档 数据库中的表名为“美文与素材”字段有“题目”与“内容”、“属性”、“作者”等 注意,以下代码仅仅只是说明ADO功能的例子。 ----------------------------------- Sub OpenASC() Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim sql Dim i Dim outstr Dim xiaoxi xiaoxi = InputBox("您要在Word文章中插入哪个字段的消息?" & Chr(13) & "字段有ID、作者、具体内容三个。") sql = "select * from 美文与素材" conn.Provider = "microsoft.jet.oledb.4.0" conn.Open "F:\ado\b\jjngyy.mdb"'''路径与文件为假定的 '用下面这句也行! 'conn.Open "provider=microsoft.jet.oledb.4.0;data source=D:\A\b\jjngyy.mdb" rs.Open sql, conn, adOpenKeyset, adLockOptimistic, adCmdText ''以下取出十条记录 For i = 1 To 10 If i <= rs.RecordCount Then outstr = outstr & i & rs(xiaoxi) rs.MoveNext End If Next ActiveDocument.Range(0, 0) = (outstr) conn.Close Set conn = Nothing End Sub ''''注意,并没有关闭Word与Accsee!!!使用时小心! ---------------- 利用VBA与ADO将文档写入到数据库中 ------------------ Sub XieASC() Dim Arange Dim A, B, C, AIB, BIB, CIB, x, y1 'Dim conn As New ADODB.Connection'这句可以下句也可以。 Set conn = CreateObject("ADODB.Connection") A = Documents(1).Name x = 0 Arange = "" For Each y1 In Documents(1).Paragraphs x = x + 1 Arange = Arange & ActiveDocument.Paragraphs(x).Range & Chr(13) Next
conn.Provider = "microsoft.jet.oledb.4.0" conn.Open "F:\ado\b\jjngyy.mdb" '以下进行文件写入 conn.Execute "Insert into 美文与素材 (主题或题目,具体内容) values ('" & A & "','" & Arange & "')" Set conn = Nothing End Sub '''使用心得——插入数据时,使用"Insert into"不如使用“Update”!只要文件中有英文逗号或撇号凡会出错!! “Update”的例子见后面。 ====================== 利用VBS读、写取数据库 ———————— ''''''''''''''''以下代码为利用VBS读、写取数据库的方法 ''数据库名“mm.mdb”有一个表“主表”,含四个字段“id,题目,内容,作者”, ''数据库的路径为“G:\”
Set conn = wscript.CreateObject("ADODB.Connection") Set rs = wscript.CreateObject("ADODB.Recordset") sql1 = "select id,题目,内容,作者 from 主表 where 1<>1"'''这句SQL代码是有技巧的,1永远不可能不等于1,所以会打开一个“空记录”,这样就有效的减轻了服务器的负担。 sql2 = "select id,题目,内容,作者 from 主表 " conn.Provider = "microsoft.jet.oledb.4.0" conn.Open "g:\mm.mdb" rs.Open sql1,conn,3,2 '''以下写入到数据库中 xieT=inputbox("请输入题目") xieL=inputbox("请输入内容") xieZ=inputbox("请输入作者") rs.AddNew''新建记录 rs("题目")=cstr(xieT) rs("内容")=cstr(xieL) rs("作者")=cstr(xieZ) rs.UpDate'''更新记录 rs.close set rs=nothing ''''以上程序的第一部分“写入”完成,下面是“读出” Set rs = Conn.Execute( sql2) Do While (Not rs.EOF) ss=rs("id") c = rs("内容") b = rs("作者") ti = rs("题目") ttt="数据ID——" & ss & chr(10) & "题目为:" & ti & chr(10) & " 内容为:" & c & chr(13) & " 作者为:" & b aa=msgbox (ttt) rs.MoveNext Loop rs.close set rs=nothing conn.Close Set conn = Nothing '''这段代码演示了“Update”在更新新数据时的用法,较之于"Insert into"更理想。 ================================ 最后)—— 利用Word的VBA与ADO联接,我们完全可以制做一个自己的“写作素材资料库”。 作为办公来说,我们就可以写一个“word文件归档数据库”。 vbs的这段代码,则可以用于在桌面上控制数据库。
[此贴子已经被konggs于2006-7-4 20:04:21编辑过] |