好吧 虽然一直习惯性的App.Path做为程序所在的路径,直到遇到问题才知道,app.path是返回的是程序的工作目录比方说我用了 CommonDialog控件的 CommonDialog1.ShowOpen
那么就是打开的哪,App.Path 就返回的哪,并不是 程序所在的路径……可悲的是 还要连接数据库 & App.Path & "\db1.mdb;Persist Security Info=False"这时候数据库连接就出错了数据库连接有肯定不能使用绝对位置的 怎么解决啊?
那么就是打开的哪,App.Path 就返回的哪,并不是 程序所在的路径……可悲的是 还要连接数据库 & App.Path & "\db1.mdb;Persist Security Info=False"这时候数据库连接就出错了数据库连接有肯定不能使用绝对位置的 怎么解决啊?
不同事件调用不同的CommonDialog控件
当然返回值 肯定不能相同
设个全局变量appPath, 程序开始运行时就把app.path永久记录在appPath中,然后使用appPath获取路径不就行了。
可是 在控件内使用apppath后 发现不单单是app.path 是在 Adodc控件下出现的问题
因为 Adobc1 中
属性
ConnectionString Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb;Persist Security Info=False这个还是相对值 还是寻找工作路径……
怎么把这个值用 apppath固定了?
现在就是
一使用CommonDialog1控件
Adobc1控件就在CommonDialog1操作过的文件夹下连接db1.mdb 好吧 我发现不是app.path的问题了Adobc1属性
ConnectionString Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb;Persist Security Info=False
把你要的语句写成:
"ConnectionString Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & appPath & "\db1.mdb" & ";Persist Security Info=False"另外,楼上有人说到IDE运行与exe运行的问题,只要在运行时先写上以下两句:
appPath=app.path
appPath="d:\appexe" '这是你的exe生成时存放的目录只要在生成exe时屏蔽掉以上第二句即可。-------------------------------------------------
我自己的程序往往要用到很多主目录下的文件,我都是这样用的,很简单也好用。
就是
Adobc1属性 用相对路径
ConnectionString Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb;Persist Security Info=False
的问题现在每次 使用文件操作之后 写一句
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & welcome.appPath & "\db1.mdb;Persist Security Info=False"还是有问题 虽然不会立马报错 但是关闭程序的时候 还是一样的问题。
咳咳
初学者的问题,N年前我也遇到同样的问题
每次调用commondialog 后
执行下面两句,把路径切换回来就行了
ChDrive Left(App.Path, 1)
ChDir App.Path
-----------------------------------------嘿嘿 麻烦大家了哈