你用下面的代码试试,这是我以前用过的StrConnect = "ODBC;DSN=" & theDSN & ";UID=" & theUID & ";PWD=" & thePwd & ";Database=" & theDatabaseName & ";"
Set db = DBEngine.Workspaces(0).OpenDatabase(vbNullString, 0, 0, StrConnect)
Set re = db.OpenRecordset("select * from yf order by id")

解决方案 »

  1.   

    不能更新是打开数据表时设置为只读(值为1)的原因,把它改成,保守式并发(2),或开放式并发(3),或使用批处理方式更新的开放式并发(4),应该就可以了,当然在这之前游标属性设置为aduseclient就更好(但会影响速度)。
      

  2.   

    TO: redwrite(红妆素裹) 
    谢谢,您说的好象是用ADO联接的,aduseclient常数好象只在ADO中定义的recordset才有用。
    TO:senble(小哈)
    我再试试,估计成功的几率不大,我以前也是这么联ODBC,能用,可这次用的是Sql Anywhere数据库就不成功了。
      

  3.   

    StrConnect="ODBC; Driver=Sybase SQL Anywhere 5.0;" & _
               "DefaultDir=c:\dbpath\;" & _
               "Dbf=c:\sqlany50\mydb.db;" & _
               "Uid=myUsername;" & _
               "Pwd=myPassword;" & _
               "Dsn="""