使用ADODC控件时,连接字符串设置必须给出数据库的绝对路径吗?,怎样用相对路径?
我设置成 data sourse= app.path & "\temp.mdb" 后, 窗体加载时,总是告诉我"连接错误". 问题点数:100、回复次数:17Top
1 楼qhzxcz(真想练练降龙十八掌)回复于 2002-06-19 19:59:43 得分 0
我也遇到过类似的问题,给你一个函数,我引用它好长一段时间了,没出问题.
'用特定的筛选条件(MyRecordSource)连接特定的数据库(MyDatabase)两个参数来连接数据库中的某张表(MyTable),数据库的密
'码为DataBasePassword
'并指定特定的字段(MyFields),返回特定的值,不绑定数据控件
Function adoconnect3(ByVal MyDatabase As String, ByVal MyTable As String, ByVal MyFields As String, ByVal MySQLCondition1 As String) As Recordset
Dim MyRs As ADODB.Recordset
Dim MyConnectString As String
Dim sql As String
''' 打开连接。
If Right(App.Path, 1) = "\" Then '当前路径(含\)
apppath = App.Path
Else
apppath = App.Path & "\"
End If
MyPath = apppath + "database\"
MyConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & MyPath & MyDatabase & ";Jet OLEDB:Database Password=" & DataBasePassword
Set MyCnn = New ADODB.Connection
MyCnn.Open MyConnectString
''建立RecordSet
Set MyRs = New ADODB.Recordset
sql = "SELECT " & MyFields & " FROM " & MyTable & MySQLCondition1
MyRs.CursorLocation = adUseClient
MyRs.LockType = adLockBatchOptimistic
MyRs.CursorType = adOpenKeyset
''给函数赋值
MyRs.Open sql, MyCnn
Set adoconnect3 = MyRs
End Function
主要是app.path 中是否包含"\".
如不包含就得手动添加
Top
2 楼qhzxcz(真想练练降龙十八掌)回复于 2002-06-19 20:32:23 得分 0
to newyc(刚起床的猫头鹰)
我也是使用的相对路径啊.
看看这个对你的问题是否会有帮助
If Right(App.Path, 1) = "\" Then '当前路径(含\)
apppath = App.Path
Else
apppath = App.Path & "\" '当前路径(不含\)
End If
主要是app.path 中是否包含"\".
含"\". :app.path & "temp.mdb"
不含"\". app.path & "\temp.mdb"
快捷图标也就不能放到客户的桌面上,恕无能为力.
Top
3 楼zgtt(闻涛)回复于 2002-06-19 23:01:03 得分 10
可以用相对路径,
我就用相对的路径,
一个例子
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb;Persist Security Info=False
就是在指定数据库时,把路径改改。
你可以建立一个名为db1.mdb,
测试一下。Top
4 楼QQRN(笨QQ-馊主意提供者)回复于 2002-06-19 23:51:46 得分 0
简单呀
App.Path
得到程序的所在目录
如果是根目录就没有"\"
用
If Right(App.Path, 1) = "\" Then '当前路径(含\)
apppath = App.Path
Else
apppath = App.Path & "\"
End If
是正确的Top
5 楼QQRN(笨QQ-馊主意提供者)回复于 2002-06-19 23:54:12 得分 0
同 zgtt(闻涛)
调试时候可以把 data sourse设置为固定的,然后运行时候改掉...Top
6 楼Explorer001()回复于 2002-06-20 00:02:11 得分 0
用 DAO 或 ADO 正确访问 Access 2000
当你使用 DAO 访问 Access 2000 时,是否会出現以下的错误信息?
"Run-time error 3343 Unrecognized Database Format XXX"
这个错误信息有二个解決的方式:
1、如果你是使用 Data Control 来连結 Access 2000 的资料库时:
你必須在設定 Data Control 的 Source 前先加上一行
Set Data1.Recordset = rsDAO36 'rsDAO36 is a DAO 3.6
2、如果你是引用「Microsoft DAO 3.51 Object Library」来访问 Access 2000 的资料库时:
請加入【工程】【部件】「Microsoft DAO 3.6 Object Library」
如果你是使用 ADO 访问 Access 2000
以往在 VB6 中利用 ADO OLEDB Provider 3.51 使用 Access 97 資料库,程序都能正常的執行。但是自从將 Access 97 升級到 Access 2000 之后,就无法順利的使用 Access 2000 資料库了,不知道您是否也曾遇到这样的情形呢?
其实这种事情在 Microsoft 已经是思空見慣的事情了!任何软件只要有了新的版本,就会有和旧版本不相容的问题产生!
而這一次是因为 Access2000 己经使用 Jet 4.0 Engine,所以解決方法如下:
在您的 ADO 的 Connect String 中的 Provider 必須修改为:"PROVIDER=Microsoft,Jet.OLEDB.4.0"
Top
7 楼Explorer001()回复于 2002-06-20 00:11:57 得分 0
“我设置成 data sourse= app.path & "\temp.mdb" 后, 窗体加载时,总是告诉我"连接错误".”
一,我想你不会是这种错误吧
1 adodc1.RecordSource = app.path & "\temp.mdb"
2 data sourse 是你的变量名?
二,注意下载并安装Microsoft Data Access Components (MDAC) 2.6 SDK
或2.7Top
8 楼liusalmon(梦尝)回复于 2002-06-20 16:28:13 得分 10
你最好用2000数据库
送给你以前做的一个程序的部分代码希望对你有帮助
With Adodc1
.ConnectionString = " Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" + App.Path + "\shitiku.mdb;" & _
"Persist Security Info=False;" & _
"Jet OLEDB:Database Password=*******"
.RecordSource = "select * from 填空"
.Refresh
end with
Top
9 楼zjaloe(zj)回复于 2002-06-20 17:07:27 得分 0
可能你的安装程序没有把数据库拷到安装目录下,才找不到的。
Top
10 楼zhengxy6(六子)回复于 2002-06-20 17:25:32 得分 0
关注,我也有同样问题,真BTTop
11 楼zjaloe(zj)回复于 2002-06-20 17:54:58 得分 0
用的是97数据库,换换数据源连接方法,这样你看行不?
adodc1.ConnectionString = "driver={microsoft access driver (*.mdb)};uid=;pid=;dbq=" & App.path & "\illness.mdb"
Top
12 楼banweihui(KBoy)回复于 2002-06-20 18:24:57 得分 0
俺是学生,俺不会,俺能不能问点问题阿:是关于SQL与VB的问题,我开始用的SQL SERVER7.0做的数据库,,用VB6做的应用程序,不是很难的那种拉,现在有两个问题,第一,把7。0,中的数据库导入另一台机器的sql2000里,并且让应程序还能调用它(我已经弄好了,把Data文件夹拖过来,设置好ODBC,以及程序中的登录设置,但是,不知道这样会不会有我现在还不知道的麻烦出现,请各位大侠指点)………………第二个问题,我不知道如何解决:把数据库倒过来后(笔记本),另一台机器也升级为sql2000了,而且,应用程序都是一样的,两台机器拥有相同的数据库和应用程序,可以联机工作,也可以单独工作,问题就是,两台机器的数据必须一致,比如笔记本出去工作,数据更新了,同时,台式机在家工作,数据也更新了,笔记本回来后,两边要互相更新,但又不能用简单的SQL2000里的方法,因为操作员是指懂得操作的,我们所提供的就是一个或几个按钮,这时,我就不会了~~~请大侠们支援~解决方法email:banweihui@sina.com
Top
13 楼szyino(午夜敲门的蜥蜴)回复于 2002-06-21 01:17:25 得分 80
adodc控件的属性一定要先清空.
在程序的开始就要把路径代码加进去.
切记............Top




