关键问题是路径要灵活,你可以用app.path & "\dadabase\db1.mdb"
这样就相对灵活了。你也可以把路径设为变量strPath,用文件保存起来,下一次程序运行,就从指定文件里读取路径,如果数据库路径改了,也没关系,用个对话框,在程序运行中手动定位,然后把改动过的数据库路径保存到文件中,这样最保险!

解决方案 »

  1.   

    ADODC重新设置新的路径后,刷新ADODC。
    或干脆在发布时清空ADODC设置。
      

  2.   

    To : cs_netwalker(静观) 
       目前我是这样做的, 但如果程序要修改(这一定经常要做的), 又要重新调回来, 很麻烦。而且万一在做成exe文件以前清空它,在别的机器上运行时,又要出错了。To : starbattler(小石头) 
       在别的机器上我会在系统配置中添加上数据库在路径,而且我的程序在运行会读取这个路径,这不成问题,问题出在,在我给ADODC重新设置时,它就提示找不到路径了,需要按[确定]才可以正确运行。
      

  3.   

    将connectionstring保存在ini文件中,在其他机器上使用的时候,直接修改ini文件就不需要修改代码。
      

  4.   

    把你的adodc控件的属性页上的设置都设空,不要在设计是就写上去!所有的连接设置都放到代码里去完成。因为在加载窗体时(代码运行前),程序会自动把你所绑定的控件连向数据库!因为你的控件里的connectionstring指向你自己机器上的数据库位置,所以会报错。
      

  5.   

    你可以使用上面starbattler(小石头)的方法用文件保存,或用hydnoahark(诺亚方舟)的方法保存的ini文件中,都能成功的。
    建议你使用代码为ADODC的ConnectionString属性赋值,并同时清空ADODC控件的属性窗口中的ConnectionString属性。代码设置如下:
    With Adodc1
        .ConnectionString="......"
        .CommandType=......
        .RecordSource="......"
        .Refresh
    End With
      

  6.   

    Set cnn2 = New ADODB.Connection
       cnn2.ConnectionString = "DSN=Pubs;UID=sa;PWD=pwd;"
       cnn2.Open
       
      

  7.   

    利用模块,定义公共类,设立SUB MAIN在其中打开数据库。
    Public System As New ADODB.Connection '系统设置库Private Sub Main()
    '得到程序路径
    Dim StrAppath As String '应用程序的路径
    StrAppath = App.Path
    With System
    .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
                        & "Persist Security Info=False;" _
                        & "Data Source=" & StrAppath & "\data\System.mdb;" _
                        & "Jet OLEDB:Database Password=1111"
    '.Mode = adModeShareExclusive
    '.IsolationLevel = adXactIsolated
    .Open
    End With
    打开以后在程序中引用Systerm就可以了。
    如果用到Ado控件,窗体加载时事先定义一个RecordSet.
    Set ado.Recordset =Recordset
      

  8.   

    可是我的ADODC捆挷了一个Grid, 而Grid需要在设计阶段设置, 所以要在设计时给ADODC设置好ConnectionString等等. 当然这些东西在运行阶段可以代码改变(如楼上所说的, 我现在就这么做的), 但代码还没有执行,它就提示"路径没有找到了".
      

  9.   

    可以将一些必要信息写在诸如:注册表或INI文件中,可以修改,这样就应该不会出现找不到指定数据源的问题了。
      

  10.   

    public publicdb as connection
    Sub Main()
    RDataPath = App.Path & "\database\HXDatabase.mdb"
    LDataBasePath = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & RDataPath & ";Persist Security Info=False"
    connectadodb(publicdb,ldatabasepath)
    End Sub
     
    Public Sub ConnectADODB(AdoConn As ADODB.Connection, DbPathStr As String)
    On Error GoTo ConnError
      Set AdoConn = New ADODB.Connection
      AdoConn.ConnectionString = DbPathStr
      AdoConn.ConnectionTimeout = 15
      AdoConn.CursorLocation = adUseClient
      AdoConn.Open
    Exit Sub
    ConnError:
      MsgBox "应用程序无法与数据库建立连接!", vbCritical, "系统错误"
      End
    End Sub
      

  11.   

    回复人: starbattler(小石头) (2001-9-19 0:16:50)  得0分 
    关键问题是路径要灵活,你可以用app.path & "\dadabase\db1.mdb"
    这样就相对灵活了。你也可以把路径设为变量strPath,用文件保存起来,下一次程序运行,就从指定文件里读取路径,如果数据库路径改了,也没关系,用个对话框,在程序运行中手动定位,然后把改动过的数据库路径保存到文件中,这样最保险!  
    回复人: cs_netwalker(静观) (2001-9-19 0:23:03)  得0分 
    ADODC重新设置新的路径后,刷新ADODC。
    或干脆在发布时清空ADODC设置。  
    回复人: vicsue(victor) (2001-9-19 13:08:17)  得0分 
    To : cs_netwalker(静观) 
      目前我是这样做的, 但如果程序要修改(这一定经常要做的), 又要重新调回来, 很麻烦。而且万一在做成exe文件以前清空它,在别的机器上运行时,又要出错了。To : starbattler(小石头) 
      在别的机器上我会在系统配置中添加上数据库在路径,而且我的程序在运行会读取这个路径,这不成问题,问题出在,在我给ADODC重新设置时,它就提示找不到路径了,需要按[确定]才可以正确运行。 
    回复人: hydnoahark(诺亚方舟) (2001-9-19 14:20:24)  得0分 
    将connectionstring保存在ini文件中,在其他机器上使用的时候,直接修改ini文件就不需要修改代码。  
    回复人: vicsue(victor) (2001-9-19 22:40:10)  得0分 
    Up  
    回复人: starbattler(小石头) (2001-9-21 10:45:37)  得0分 
    把你的adodc控件的属性页上的设置都设空,不要在设计是就写上去!所有的连接设置都放到代码里去完成。因为在加载窗体时(代码运行前),程序会自动把你所绑定的控件连向数据库!因为你的控件里的connectionstring指向你自己机器上的数据库位置,所以会报错。  
    回复人: itmouse(Anti猫) (2001-9-21 13:26:30)  得0分 
    你可以使用上面starbattler(小石头)的方法用文件保存,或用hydnoahark(诺亚方舟)的方法保存的ini文件中,都能成功的。
    建议你使用代码为ADODC的ConnectionString属性赋值,并同时清空ADODC控件的属性窗口中的ConnectionString属性。代码设置如下:
    With Adodc1
        .ConnectionString="......"
        .CommandType=......
        .RecordSource="......"
        .Refresh
    End With
     
    回复人: Jneu(沧海桑田) (2001-9-21 13:30:20)  得0分 
    Set cnn2 = New ADODB.Connection
      cnn2.ConnectionString = "DSN=Pubs;UID=sa;PWD=pwd;"
      cnn2.Open
       
    回复人: Sean_Jhh(开心可可) (2001-9-21 15:58:09)  得0分 
    利用模块,定义公共类,设立SUB MAIN在其中打开数据库。
    Public System As New ADODB.Connection '系统设置库Private Sub Main()
    '得到程序路径
    Dim StrAppath As String '应用程序的路径
    StrAppath = App.Path
    With System
    .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
                        & "Persist Security Info=False;" _
                        & "Data Source=" & StrAppath & "\data\System.mdb;" _
                        & "Jet OLEDB:Database Password=1111"
    '.Mode = adModeShareExclusive
    '.IsolationLevel = adXactIsolated
    .Open
    End With
    打开以后在程序中引用Systerm就可以了。
    如果用到Ado控件,窗体加载时事先定义一个RecordSet.
    Set ado.Recordset =Recordset
     
    回复人: vicsue(victor) (2001-9-21 20:54:13)  得0分 
    可是我的ADODC捆挷了一个Grid, 而Grid需要在设计阶段设置, 所以要在设计时给ADODC设置好ConnectionString等等. 当然这些东西在运行阶段可以代码改变(如楼上所说的, 我现在就这么做的), 但代码还没有执行,它就提示"路径没有找到了".  
    回复人: jxboy(异想天开) (2001-9-21 21:07:04)  得0分 
    设个断点看看是在哪行出的错呀
     
    回复人: wilddragon(帅帅) (2001-9-21 22:14:29)  得0分 
    等待中...  
    回复人: wilddragon(帅帅) (2001-9-21 22:30:41)  得0分 
    等待中...  
    回复人: wilddragon(帅帅) (2001-9-21 22:38:53)  得0分 
    关注  
    回复人: TonyJoule(寒星) (2001-9-21 22:55:44)  得0分 
    可以将一些必要信息写在诸如:注册表或INI文件中,可以修改,这样就应该不会出现找不到指定数据源的问题了。  
    回复人: wilddragon(帅帅) (2001-9-21 23:55:38)  得0分 
    等待中...  
    回复人: wilddragon(帅帅) (2001-9-22 2:35:48)  得0分 
    关注  
    回复人: wxl781227(王新良) (2001-9-23 0:44:32)  得0分 
    public publicdb as connection
    Sub Main()
    RDataPath = App.Path & "\database\HXDatabase.mdb"
    LDataBasePath = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & RDataPath & ";Persist Security Info=False"
    connectadodb(publicdb,ldatabasepath)
    End SubPublic Sub ConnectADODB(AdoConn As ADODB.Connection, DbPathStr As String)
    On Error GoTo ConnError
      Set AdoConn = New ADODB.Connection
      AdoConn.ConnectionString = DbPathStr
      AdoConn.ConnectionTimeout = 15
      AdoConn.CursorLocation = adUseClient
      AdoConn.Open
    Exit Sub
    ConnError:
      MsgBox "应用程序无法与数据库建立连接!", vbCritical, "系统错误"
      End
    End Sub  
      

  12.   


    记得把设计时的ADODC的ConnectionString删掉。