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:无法运行此操作,在此上下文中可能已被关闭或无效。 求教该怎样改,谢谢。
1、我用的是Adodc1.Recordset.close,运行后datagrid不显示内容了,但是然后覆盖操作时显示无权限可能进程被占,是不是没有完全关闭?
可以存储为其他名称文件。
怎样关闭已打开的access文件呢?
2、把安装包里的access文件用新的覆盖掉后,重新安装程序后运行显示的数据库还是旧的,不知为什么?
Adodc1.Recordset.Close
Set Adodc1.Recordset = Nothing
Adodc1.Recordset.ActiveConnection.Close
Set Adodc1.Recordset.ActiveConnection = Nothing重新安装,当然是又用旧的覆盖了一次。
2)你 Adodc 引用的绝对路径吧,操作的数据库根本不是 App.Path 下的那个 mdb。
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
谢谢。
你新安装包安装的之前没卸载,安装包可能在自己的索引文件中发现mdb没有更新,所以不覆盖了;或者认为当前的mdb比安装包中的还新,所以也不覆盖了。
要么卸载了再安装,要么就手工覆盖吧,或者找个安装工具可以选始终覆盖的。
在vb环境里 ," & App.Path & "意思是数据库文件 在 vb工程程序所在当前目录下;
在其他电脑用安装包安装后 ,就是操作安装路径下的数据库文件了。修改后,数据库可以更改。
如果有了新的数据库文件,穿过去直接覆盖掉旧的数据库文件,不需要传递新的安装包,不需要重新安装,原程序还可以浏览操作。
我确实是先卸载旧程序后,再安装新程序包的。
如果不更新这个时间,只是替换了mdb打个包,和上个版本“没区别”。
文件列表索引,是不是生成安装包时包含的文件目录?数据库文件都是刚改过的,生成的包里cab、support里的数据库文件都是最新的。
安装到默认目录C:\Program Files\工程1后,显示及查询为旧
安装到新目录C:\Program Files\工程2后,显示及查询为新;但是在程序里再改内容后,显示为最新,数据库却为旧,再打开程序内容仍为最新。麻烦的,还是用绝对路径吧,至少数据可更新,用户也方便。
所以你用新文件覆盖进去,直接打包后cab也是新文件,安装包却认为文件没有更新过。
必须是新文件放在源目录下,让安装工具打开它的“工程”,重头开始做一遍才会更新。
不管程序里用绝对地址还是相对地址,其生成的安装包,装在未安装VB6的电脑上,即便用默认安装路径C:\Program Files\工程1,都可以正常运行,操作准确。用更新后的数据库文件,覆盖掉安装目录里的旧数据库文件后,运行程序,可以显示新的数据库文件。目的达到。
至于原因,还请各位大侠以后遇到了予以解决。
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:无法运行此操作,在此上下文中可能已被关闭或无效。
求教该怎样改,谢谢。