网络教育报名时间2016:用VBA怎么样才能在Word下对Access数据库进行写操作,这样为什么不行? - 其他开...

来源:百度文库 编辑:宝宝故事网 时间:2019/10/19 18:16:18
用VBA怎么样才能在Word下对Access数据库进行写操作,这样为什么不行?[问题点数:0分,结帖人:]
  • ui_ppoppopp
  • (操作com port 太麻烦了)
  • 等 级:
  • 结帖率:
楼主发表于:2002-02-13 16:14:58

Sub   a()
        Dim   myRange   As   Range
        Set   myRange   =   ActiveDocument.Range(Start:=0,   End:=2)
       
        Dim   cnndata   As   ADODB.Connection
        Set   cnndata   =   New   ADODB.Connection
        cnndata.Open   "Provider   =   Microsoft.Jet.OLEDB.4.0;Data   Source   =   "   &   WorkPath   &   "c:\my   documents\db1.mdb "
       
        Dim   rstRecord   As   ADODB.Recordset
        Set   rstRecord   =   New   ADODB.Recordset
        rstRecord.Open   "Table1 ",   cnndata
        'MsgBox   "ok "
       
        If   rstRecord.EOF   Then
                rstRecord.MoveLast
        End   If
             
        Z_AddNew   rstRecord,   myRange
       
        rstRecord.Close
        cnndata.Close
             
End   Sub

Function   Z_AddNew(rsttemp   As   ADODB.Recordset,   myRange   As   Word.Range)

        With   rsttemp
                .AddNew
                !内容   =   myRange.Text
                !颜色   =   myRange.Font.Size
                .Update
        End   With
       
End   Function

执行到AddNew就说操作错误,我不知道为什么?请教各位
(Win98+office97下)
  • acptdta
  • (微软全球技术中心 桌面产品技术)
  • 等 级:
  • 4

#1楼 得分:0回复于:2002-02-15 14:42:53 感谢您使用微软产品。

您这个问题是由于ADO   Recordset缺省是用adLockReadOnly方式打开,不允许增加或删除。您可以在代码中加入以下参数加以解决:

rstRecord.Open   "Table1 ",   cnndata,   adOpenKeyset,   adLockOptimistic

更多信息,请参考以下文章:

ID:   Q225899         ACC2000:   Can 't   Add/Delete   Records   with   ADO   Methods                         [acc2000kb]
http://support.microsoft.com/support/kb/articles/q225/8/99.asp

-微软全球技术中心     桌面产品技术支持  


本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。

为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。