我用ADODC 控件处理数据库(用向导的代码)本来一切正常
ADODC1.ConnectionString为
PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Microsoft Visual Studio\MyProjects\record\record.mdb;后来我改了一下
Public ConnString as String
ConnString="PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source="+app.path+"\record.mdb;"然后把 ADODC1.ConnectionString清空
并且在主窗体打开前,在主模块中执行
frmBrowse.ADODC1.ConnectionString= ConnString但是在执行这一句时出错
[Microsoft][ODBC 驱动程序 管理器]未发现数据源名称并且未指定默认驱动程序这是怎么回事?
我在MSDN 中找不到答案
谁能指点一下,谢谢

解决方案 »

  1.   

    app.path是等于D:\Microsoft Visual Studio\MyProjects\record吗?
      

  2.   

    PROVIDER=Microsoft.Jet.OLEDB.4.0没有加
      

  3.   

    app.path 原来就是这样,对的
    从代码没修改前起就一直是这样我定义的ConnString变量前面加了啊
    上面的语句是CSDN自动换行的
    本来应该是
    ConnString="PROVIDER=Microsoft.Jet.OLEDB.4.0;Data _
    Source="+app.path+"\record.mdb;"
      

  4.   

    看看我用的连接吧,我用没什么问题,你试试看吧
    Dim Cnn As New ADODB.Connection
    Cnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.path & "\文件名.mdb;Persist Security Info=False"
      

  5.   

    to huangy0153(逍遥) :
    但我的ADODC控件是已经放在窗体上的
    这样 可能要 有很多修改
      

  6.   

    我大概知道你的问题,其实用代码读出数据后控件可以不要啦,跟别的控件绑定可用代码DATASOURCE属性来实现呀
      

  7.   

    frmBrowse.ADODC1.RecordSource 语句没加,应指定具体表句或查询语句。
    ConnString="PROVIDER=Microsoft.Jet.OLEDB.4.0;Data _
    Source="+app.path+"\record.mdb;"
    只是指定了数据库名,并没有指定数据库的具体表名呀
    再加这两名就可以了
    frmBrowse.ADODC1.commandtype=2
    frmBrowse.ADODC1.recordsource="表名"
    frmBrowse.ADODC1.refresh
      

  8.   

    主要是你的ADODC那里没有完全清空。还有表名等信息存在。
    LOAD的时候会自动检测的,又因为事件是发生在你的语句指定路径之前,所以会出错。
    解决办法:
    将ADODC清空。
    用语句将表名等信息加上。
      

  9.   

    to winyhuang(winy_huang) 
    清空了之后只要一refresh
    就会出错:
    连接被拒,所需的新连接和一个已被使用的连接的特性不一致
      

  10.   

    用ADO连接:
    工程--->引用--->Microsoft ActiveX Data Object 2.x(版本号)Option ExplicitDim WithEvents adoRS As Recordset
    Dim db As Connection
    '提数据事件
        Set db = New Connection
        db.CursorLocation = adUseClient
        db.Open"Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & App.Path & "\db1.mdb;Jet OLEDB:Database Password=1234;"
    '                           ##########################################
    '打开密码是1234的Access2000数据库db1.mdb
    '不需要密码,就把Jet OLEDB:Database Password=1234;这段去掉    Set adoRS = New Recordset
        
        adoRS.Open "SELECT * FROM 表", db, adOpenStatic, adLockOptimistic
        '赋值给 DataGrid 表
        Set DataGrid1.DataSource = adoRS
        '表刷新
        DataGrid1.Refresh
    '添加事件和保存
        adoRS.AddNew
        '保存
        adoRS![字段a] = text1.Text
        adoRS![字段b] = text2.Text
        adoRS.UpdateBatch adAffectAll'删除
        adoRS.Delete
        '重新赋值给表
        adoRS.Requery
        Set DataGrid1.DataSource = adoRS
        DataGrid1.Refresh    '其他相关操作:
        '上一条
        If Not adoRS.BOF Then adoRS.MovePrevious
        If adoRS.BOF And adoRS.RecordCount > 0 Then
             '已到最后返回
             adoRS.MoveFirst
        End If
        '下一条
        If Not adoRS.EOF Then adoRS.MoveNext    '下一条
        If adoRS.EOF And adoRS.RecordCount > 0 Then
              '已到最后返回
              adoRS.MoveLast
        End If
        '第一条
        If Not adoRS.BOF Then adoRS.MoveFirst
        '最末
        If Not adoRS.EOF Then adoRS.MoveLast
      

  11.   

    Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\数据名.mdb ;Persist Security Info=False;Jet OLEDB:Database Password=密码"
    Adodc1.RecordSource = "select * from 表名"
    Adodc1.Refresh
      

  12.   

    现在,我在主模块里写了Public ConnString As String
    Public adoDataConn As ADODB.Connection
    Public adoDataCmd As ADODB.Command
    Public adoDataRS As ADODB.Recordset    
    Set adoDataConn = New ADODB.Connection
    Set adoDataCmd = New ADODB.Command
    Set adoDataRS = New ADODB.Recordset
        
        ConnString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source="  _
             & App.Path & "\record.mdb;Persist Security Info=False"    adoDataConn.ConnectionString = ConnString
        adoDataConn.Open
        'Set adoDataCmd.ActiveConnection = adoDataConn
        adoDataCmd.CommandType = adCmdUnknown
        adoDataCmd.CommandTimeout = 20
        adoDataCmd.CommandText = "select * from 电教片数据"
        adoDataRS.Open "select * from 电教片数据", adoDataConn
        
    然后在另一个窗口中放一个DataGridPrivate Sub Form_Load()
        dbgrdBrowse.DataSource = adoDataRS
    '    上句出错:未找到方法或成员
    ' 改成 set dbgrdBrowse.DataSource = adoDataRS
    '     也出错:行集合不能作为标签
    End Sub我只是想,在主模块中定义数据对象,在所有的窗体中共用
    还有其他好的办法吗帖子再加分
      

  13.   

    你把
    ConnString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source="  _
             & App.Path & "\record.mdb;Persist Security Info=False"修改如下试试“
    ConnString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source="  _
             & App.Path & "\record.mdb;Persist Security Info=False" & """我感觉可能是你的连接字符串有问题,如果不换行,不用变量本来应该是ConnString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Microsoft Visual Studio\MyProjects\record\record.mdb;Persist Security Info=False" 你现在用了变量而最后却少了一个"""
      

  14.   

    Public ConnString As String
    Public adoDataConn As ADODB.Connection
    Public adoDataCmd As ADODB.Command
    Public adoDataRS As ADODB.Recordset    
    Set adoDataConn = New ADODB.Connection
    Set adoDataCmd = New ADODB.Command
    Set adoDataRS = New ADODB.Recordset
     adoDataRS.cursorlocaton=aduseclient''''要加上这句   
        ConnString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source="  _
             & App.Path & "\record.mdb;Persist Security Info=False"    adoDataConn.ConnectionString = ConnString
        adoDataConn.Open
        'Set adoDataCmd.ActiveConnection = adoDataConn
        adoDataCmd.CommandType = adCmdUnknown
        adoDataCmd.CommandTimeout = 20
        adoDataCmd.CommandText = "select * from 电教片数据"
        adoDataRS.Open "select * from 电教片数据", adoDataConn
        
    然后在另一个窗口中放一个DataGridPrivate Sub Form_Load()
    set dbgrdBrowse.DataSource = adoDataRS
    End Sub
      

  15.   

    连接字符串我就不说了,上面很多。
    关键在于你的ADODC的属性ConnectString中应该是空,不然会出错。可以把窗体上控件删掉,
    在窗体上再放一个,ConnectString值完全由代码实现。
      

  16.   

    我终于解决了问题但是还是没能找出 原来的问题所在最后我在主窗体上放了个VISIBLE=FALSE的ADODC控件……