当然不用ODBC数据源,你可以在VB中找到一个叫ADODC的控件,用它可以得到很直接的连接字符串!

解决方案 »

  1.   

    ConnectString="Provider=Microsoft.Jet.OLEDB.4.0;Password="""";Data Source=E:\SysData\CenteOrgan.mdb;Persist Security Info=True"
      

  2.   

    如果你的数据库是access2000,则必须如微风轻扬所说的那样将Provider设置为Microsoft.Jet.OLEDB.4.0。
      

  3.   

    好象还是不行啊!是不是要把access2000的格式转换成以前的旧的格式!还有那个password是指什么的password啊!?谢谢!!!!!
      

  4.   

    参考一下VC的连接串
    ODBC Driver for AccessstrConnection = _T("Driver={Microsoft Access Driver (*.mdb)};"
    "Dbq=c:\\DatabasePath\\dbaccess.mdb;Uid=;Pwd=;");              If you are using a Workgroup (System database):
    You need to inform the SystemDB Path, the User Name and its password.
    For that You have Two solutions: Inform the user and password in the conecction string or in the moment of the open operation.
    For Example: strConnection = _T("Driver={Microsoft Access Driver (*.mdb)};"
    "Dbq=C:\\VC Projects\\ADO\\Samples\\AdoTest\\dbTestSecurity.mdb;"
    "SystemDB=C:\\Program Files\\Microsoft Office\\Office\\SYSTEM.mdw;"
    "Uid=Carlos Antollini;Pwd=carlos"); or may be strConnection = _T("Driver={Microsoft Access Driver (*.mdb)};"
    "Dbq=C:\\VC Projects\\ADO\\Samples\\AdoTest\\dbTestSecurity.mdb;"
    "SystemDB=C:\\Program Files\\Microsoft Office\\Office\\SYSTEM.mdw;");
    if(pDB.Open(strConnection, "DatabaseUser", "DatabasePass"))
    {
    DoSomething();
    pDB.Close();
    }If you want to open in Exclusive mode:strConnection = _T("Driver={Microsoft Access Driver (*.mdb)};"
    "Dbq=c:\\DatabasePath\dbaccess.mdb;Exclusive=1;");
      

  5.   

    password 是你的数据库的密码.
    如果你是用的是access2000做的数据库 并设置了访问密码:
    只许在password="密码" 即可
      

  6.   

    你如果要得到最正确的connection string,建议使用ADODC或DATAENVIRONMENT,建好连接后,用msgbox显示一下其connectionstring属性。
    我觉得用DATAENVIRONMENT很好,不用定义connection、recordset和connectionstring,代码看起来很干净。
      

  7.   

    怎么先建好连接呢!?我的整个模块是这样的!
    Public cnn As ADODB.Connection
    Public fMainForm As frmMain
    Public UserName As String
    Sub Main()
        Dim fLogin As New frmLogin
        fLogin.Show vbModal
        '显示登陆窗体
        '判断是否授权用户
        If Not fLogin.OK Then
            'Login Failed so exit app
            End
        End If
        Unload fLogin    '判断是否进入系统
        Set fMainForm = New frmMain
        fMainForm.Show
    End Sub
    Public Function ConnectString() _
       As String
    '返回一个数据库连接
       ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Password ="";Data Source=C:\stu1.mdb;Persist Security Info=True"
    End Function
    Public Function ExecuteSQL(ByVal SQL _
       As String, MsgString As String) _
       As ADODB.Recordset
    '传递参数SQL传递查询语句,MsgString传递查询信息
       Dim cnn As ADODB.Connection
       '定义连接
       Dim rst As ADODB.Recordset
       '定义字符串
       Dim sTokens() As String
       '错误处理
       On Error GoTo ExecuteSQL_Error
       '用split函数产生一个包含各个子串的数组
       sTokens = Split(SQL)
       '创建连接
       Set cnn = New ADODB.Connection
       cnn.Open ConnectString
       '判断字符串中是否含有指定内容
       If InStr("INSERT,DELETE,UPDATE", _
          UCase$(sTokens(0))) Then
          '执行查询语句
          cnn.Execute SQL
          MsgString = sTokens(0) & _
             " query successful"
       Else
          '创建数据集对象
          Set rst = New ADODB.Recordset
          rst.Open Trim$(SQL), cnn, _
             adOpenKeyset, _
             adLockOptimistic
          'rst.MoveLast     'get RecordCount
          Set ExecuteSQL = rst
          MsgString = "查询到" & rst.RecordCount & _
             " 条记录 "
       End If
    ExecuteSQL_Exit:
       '清空数据对象
       Set rst = Nothing
       Set cnn = Nothing
       Exit Function
       '错误类型判断
    ExecuteSQL_Error:
       MsgString = "查询错误: " & _
          Err.Description
       Resume ExecuteSQL_Exit
    End Function请高手赐教!请麻烦说清楚点!我很菜的!谢谢!!!!
      

  8.   

    If InStr("INSERT,DELETE,UPDATE", _
          UCase$(sTokens(0))) Then你的Instr函数使用错误,改成:
    if InStr("INSERT",UCase$(sTokens(0))) or InStr("DELETE",UCase$(sTokens(0))) or InStr("UPDATE",UCase$(sTokens(0))) then
      

  9.   

    而且,你的数据库连接用完以后需要关闭:cnn.close()
    而不是简单的Set cnn = Nothing
      

  10.   

    不会吧!我这个模块连接SQL Server2000时都完全没有问题!
    只是这个函数不一样!
    Public Function ConnectString() _
       As String
    '返回一个数据库连接
       ConnectString = "PROVIDER=SQLOLEDB.6;Persist Security Info=True;User ID=sa;Password=8122;Initial Catalog=Student;Data Source=TIANYE;Connect Timeout=15"
    End Function
    现在我想连接一个access2000的mdb文件,里面的表的内容和sql server里的
    都完全一样!我的mdb文件也没有设密码!请问高手要怎么样改这个函数呢!?我把它改成:
    Public Function ConnectString() _
       As String
    '返回一个数据库连接
       ConnectString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=C:\stu1.mdb"
    End Function
    还是不行!请问是不是还要加些什么东西!谢谢!请赐教!!!!!
      

  11.   

    Public Function ConnectString()  As StringConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\stu1.mdb;Persist Security Info=False"End Function
      

  12.   

    你写这么长,
    还是先连好了数据库再写好些
    你要先应用ADO对象,然后在作其他的事情
    conn.connectionstring="provider=microsoft.jet.oledb.4.0 data source="+datapath
    dtapath是你的数据库的路径,没有密码的就是这样
      

  13.   

    连接Access 要引用ADO 2.5 or 2.6
    在用
    dim  sql_cn as string
    Dim cn As ADODB.Connection
    sql_cn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=路径;Persist Security Info=False"
    Set cn = New ADODB.Connection
    cn.Open sql_cn
    应该没有任何问题吧
      

  14.   

    还是不行,我就是这样的!到底怎么回事呢!为什么SQL Sever 2000,就可以呢!还是没有连接上数据库文件mdb啊!!!!