解决方案 »

  1.   

    1 更新文件时,软件要关闭所打开的文件。2 FileCopy Text4.Text, App.Path & " \ "电器库新.mdb"
      

  2.   

    谢谢。
    1、我用的是Adodc1.Recordset.close,运行后datagrid不显示内容了,但是然后覆盖操作时显示无权限可能进程被占,是不是没有完全关闭?
    可以存储为其他名称文件。
    怎样关闭已打开的access文件呢?
    2、把安装包里的access文件用新的覆盖掉后,重新安装程序后运行显示的数据库还是旧的,不知为什么?
      

  3.   

    把连接对象也关掉。试试 
    Adodc1.Recordset.Close
    Set Adodc1.Recordset = Nothing
    Adodc1.Recordset.ActiveConnection.Close
    Set Adodc1.Recordset.ActiveConnection =  Nothing重新安装,当然是又用旧的覆盖了一次。
      

  4.   

    1、运行错误,必须强制关掉窗体。2、access文件更新后,必须重新生成安装包吗?为什么把安装包里的access文件用新的文件覆盖掉后安装,还是显示旧文件?
      

  5.   

    1)把所有有 Adodc 的窗体都关闭,再覆盖 mdb 文件。
    2)你 Adodc 引用的绝对路径吧,操作的数据库根本不是 App.Path 下的那个 mdb。
      

  6.   

    讲求文件路径的目的:
    1、安装包可随意选择安装目录,数据库文件就在安装目录下,可以浏览查询增删操作。
    2、如果有了新的数据库文件,只需要更改为安装路径下的同名数据库文件即可。不需要重新编译,不需更新安装包不需重新安装。
    步骤:更改数据库文件内容后,编译生成新的安装包。
    问题:
    1、安装包安装在默认位置,如c:\programe files\工程1,则显示旧的数据库内容;如果更新安装位置,如:c:\programe files\工程2,则显示新的数据库内容。不知哪里错了?
    2、怎样更改默认安装路径?
    代码如下:
    Private Sub Form_Load()
      Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path & "\电器库.mdb;Mode=ReadWrite|Share Deny None;Persist Security Info=False"
      Adodc1.RecordSource = "电器库"
      Adodc1.CommandType = adCmdTable
      Adodc1.Refresh
      DataGrid1.Refresh  
    End Sub
    谢谢。
      

  7.   

    安装路径和程序没关系啊,是安装工具的设置啊。
    你新安装包安装的之前没卸载,安装包可能在自己的索引文件中发现mdb没有更新,所以不覆盖了;或者认为当前的mdb比安装包中的还新,所以也不覆盖了。
    要么卸载了再安装,要么就手工覆盖吧,或者找个安装工具可以选始终覆盖的。
      

  8.   

    我是这样理解的:
    在vb环境里 ," & App.Path & "意思是数据库文件 在 vb工程程序所在当前目录下;
    在其他电脑用安装包安装后 ,就是操作安装路径下的数据库文件了。修改后,数据库可以更改。
    如果有了新的数据库文件,穿过去直接覆盖掉旧的数据库文件,不需要传递新的安装包,不需要重新安装,原程序还可以浏览操作。
    我确实是先卸载旧程序后,再安装新程序包的。
      

  9.   

    重新生成安装包试一下不就知道了吗?另一个方法,直接双击安装包 .cab 文件,查看其中 .mdb 的最后修改日期时间。
      

  10.   

    安装程序不大会看cab中的文件时间来比较新旧,而是自己的文件列表索引已经记下了文件时间。
    如果不更新这个时间,只是替换了mdb打个包,和上个版本“没区别”。
      

  11.   

    我确是先卸载旧程序后,再安装新程序包的。
    文件列表索引,是不是生成安装包时包含的文件目录?数据库文件都是刚改过的,生成的包里cab、support里的数据库文件都是最新的。
    安装到默认目录C:\Program Files\工程1后,显示及查询为旧
    安装到新目录C:\Program Files\工程2后,显示及查询为新;但是在程序里再改内容后,显示为最新,数据库却为旧,再打开程序内容仍为最新。麻烦的,还是用绝对路径吧,至少数据可更新,用户也方便。
      

  12.   

    安装工具不扫描 support 目录,它就是把说有的文件备份在这里方便打包,它认为这里的文件是不会更新的。
    所以你用新文件覆盖进去,直接打包后cab也是新文件,安装包却认为文件没有更新过。
    必须是新文件放在源目录下,让安装工具打开它的“工程”,重头开始做一遍才会更新。
      

  13.   

    13楼说得对,就是那样做的。
    不管程序里用绝对地址还是相对地址,其生成的安装包,装在未安装VB6的电脑上,即便用默认安装路径C:\Program Files\工程1,都可以正常运行,操作准确。用更新后的数据库文件,覆盖掉安装目录里的旧数据库文件后,运行程序,可以显示新的数据库文件。目的达到。
    至于原因,还请各位大侠以后遇到了予以解决。
      

  14.   

    对,是把所有有Adodc 的窗体都关闭,再复制mdb 文件。
      

  15.   

    adodb与数据库联接后,通过datagrid绑定是否就可以实现显示、增、删、改了?
    Private Sub Form_Load()
    Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim connect_string As String
    Set cn = New ADODB.Connection
    Set rs = New ADODB.Recordset
    connect_string = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\电器库.mdb;Persist Security Info=False"
     rs.open connect_string
    End Sub
    运行后提示实时错误3709:无法运行此操作,在此上下文中可能已被关闭或无效。
    求教该怎样改,谢谢。