| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3306 人关注过本帖, 1 人收藏
标题:连接数据库用相对路径,怎么弄?
只看楼主 加入收藏
greenpop
Rank: 1
等 级:新手上路
帖 子:83
专家分:3
注 册:2011-12-22
结帖率:89.19%
收藏(1)
已结贴  问题点数:10 回复次数:5 
连接数据库用相对路径,怎么弄?
各位老师,代码如下:
'版本号
Public Const VerNum As String = "版本 1.0"
'生成日期
Public Const GenDate As String = "日期 2005-11-25"
'定义数据库连接字符串
'Public Const Conn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=CRM.mdb;"    '设置连接字符串ConnectionString属性
'Public Const Conn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\vb\vbstudy\源码01  客户资源管理系统\CRM.mdb;"    '设置连接字符串ConnectionString属性
Public Const Conn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "crm.mdb"  '设置连接字符串ConnectionString属性"
 
 
 '一次执行connect操作可以访问数据库的次数
Public Const CONNECT_LOOP_MAX = 10

搜索更多相关主题的帖子: 连接数据库 Public Const String 字符串 
2018-05-26 21:37
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:3 
App.Path & "crm.mdb"

你先要知道 app.path 返回什么
如果你工程在 D:\vb\vbstudy\源码01\ 这个目录,
那么 app.path 返回 D:\vb\vbstudy\源码01,再加上你的 crm.mdb ,得到的数据库路径是: D:\vb\vbstudy\源码01crm.mdb
很明显,结果是错误的。

一般来说,app.path 返回工程的所在目录,不包括最后的 \ 符号,但有一种情况例外,那就是在根目录下时包括这个符号。
所以,你这里要根据情况自己补上这个 \ 符号了。

有二种选择,一种使用 IIF 函数,不需要大改你的代码。
一种是使用 IF 命令,要么增加一个变量,要么重复写一句代码。

你自己选择吧。

授人于鱼,不如授人于渔
早已停用QQ了
2018-05-26 22:47
wds1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:49
帖 子:393
专家分:2025
注 册:2016-3-10
收藏
得分:3 
Public Const Conn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\crm.mdb"  '设置连接字符串ConnectionString属性"
 
2018-05-27 09:20
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
收藏
得分:3 
Public Const Conn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\vb\vbstudy\源码01  客户资源管理系统\CRM.mdb;"
这个语句是绝对路径,返回值是:D:\vb\vbstudy\源码01  客户资源管理系统\CRM.mdb
Public Const Conn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "crm.mdb"
这个语句是相对路径,返回值是:D:\vb\vbstudy\源码01  客户资源管理系统CRM.mdb,看出来与上面的区别了吗?
因此应该修改为:
Public Const Conn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\crm.mdb"
这个语句是相对路径,返回值是:D:\vb\vbstudy\源码01  客户资源管理系统\CRM.mdb,这才是正确的。

请不要选我!!!
2018-05-27 11:07
greenpop
Rank: 1
等 级:新手上路
帖 子:83
专家分:3
注 册:2011-12-22
收藏
得分:0 
如果按各位老师指导的,运行时,"path"加黑印,然后显示"编译错误,要求常数表达式".
2018-05-27 12:14
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
收藏
得分:0 
greenpop
好像你这样设置有问题吧?
Public Const Conn As String 是设置一个常量,所谓常量,conn 肯定是一个字符串,那么后面就不应该有变量,而 App.Path 是系统检测的相对目录,可以认为是变量。

在VB中,conn 是对象,是连接数据库的对象,不是常量!应该这样才对:
Dim conn As New ADODB.Connection, RS As New ADODB.Recordset   '设置 conn 数据库连接对象与 RS 记录集对象

conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\crm.mdb"   'conn连接数据库的字符串
conn.Open    '打开conn对象连接到数据库

当然在VB中还有很多方法可以连接数据库,以上是利用VB的ADO对象连接数据库的。

请不要选我!!!
2018-05-27 17:55
快速回复:连接数据库用相对路径,怎么弄?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020961 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved