以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何判断系统是否安装了office 2007组件  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=4751)

--  作者:程兴刚
--  发布时间:2009/10/26 10:51:00
--  如何判断系统是否安装了office 2007组件
      经测试:如果采用了Access外部数据源,且在没有安装office 系统或者说组件的电脑(或者说用户重装系统没装office的情况下)运行狐表项目文件,系统会报错。
      建议:能否在采用Access外部数据源的情况下,增加一个针对是否office或相关组件的判断,检测到系统不能正常运行时,提示安装office或者组件,甚至直接打开狐表的下载链接页面,同时关闭狐表项目文件,直到用户的电脑安装了office相关组件!
--  作者:狐狸爸爸
--  发布时间:2009/10/26 10:59:00
--  
随便测试一个Access 2007能否连接就行

Dim str1 As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\\data\\订单.accdb"
Dim conn As New Data.OleDb.OleDbConnection(str1)
Try
    conn.open
    conn.Close
    messagebox.Show("有")
Catch ex As Exception
    messagebox.Show("没有")
End Try

--  作者:程兴刚
--  发布时间:2009/10/26 11:03:00
--  

哦,谢谢,加在项目属性的BeforeConnectOuterDataSource事件中可以吧?


--  作者:狐狸爸爸
--  发布时间:2009/10/26 11:05:00
--  
可以用在任何你需要用的地方。
--  作者:程兴刚
--  发布时间:2009/10/26 11:32:00
--  
项目属性的 BeforeConnectOuterDataSource 事件,这里不可以用系统变量?改用写系统信息的方法是否可以?


Dim str1 As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ProjectPath & "外部数据源名称.accdb"
Dim conn As New Data.OleDb.OleDbConnection(str1)
Try
    conn.open
    conn.Close
Catch ex As Exception
    messagebox.Show("对不起,系统需要Office 2007 或组件,请下载安装!")
    Dim Proc As New Process \'定义一个新的Process
    Proc.File = "http://www.foxtable.com/dispbbs.asp?boardid=2&Id=33" \'指定要打开的网页地址
    Proc.Start()
    Syscmd.Project.Exit(False)
End Try

--  作者:狐狸爸爸
--  发布时间:2009/10/26 11:45:00
--  
这里不可以用系统变量,你可以用文本文件保存和读取信息。
也可以用注册表保存信息,但是用注册表的话,你需要看看你买的vb.net的书,或者上网搜一下。
--  作者:程兴刚
--  发布时间:2009/10/26 12:00:00
--  

哦,谢谢,知道怎么办了!