我用下面的语句打开vf数据库,
dbf_conn.Open " Provider=MSDASQL.1;Driver=Microsoft Visual Foxpro Driver;SourceDB=" + FilePath + ";SourceType=DBF;"
     SQL = "select * from s_zj.dbf"
    dbf_rst.Open SQL, dbf_conn, adOpenDynamic, adLockOptimistic
可不知道为什么在不同的机子或是不同的操作系统下,会出现ODBC不支持此功能的错误,这是为什么?是不是这个dbf_conn.open 有问题啊?

解决方案 »

  1.   

    或者还是因为vb不支持远程访问服务器,并对服务器进行读写啊!!我用的方法是打开vf的recordset以及sql的recordset,并用一个的addnew进行写入,是不是这样的方法不行啊,谁能告诉我啊,很急!!!
      

  2.   

    try:
    Dim dbf_conn As New ADODB.Connection
    Dim dbf_rst As New ADODB.Recordsetdbf_conn.Open " Provider=MSDASQL.1;Driver=Microsoft Visual Foxpro Driver;SourceDB=" + FilePath + ";SourceType=DBF;"'filepath为DBF表所在文件夹路径!!!
         SQL = "select * from s_zj"
        dbf_rst.Open SQL, dbf_conn, , adOpenKeyset, adLockOptimistic
      

  3.   

    还是不行啊,我在本地机下(server2000)下可以正常运行,但是编译成可执行文件到另一个操作系统(xp)下就会出现错误,到底是为什么啊??真的很急,请大家帮帮忙了,谢谢!
      

  4.   

    建议使用odbc创建数据源来弄.
    只要odbc里有这个驱动,你就可以连上的.
    还有"但是编译成可执行文件到另一个操作系统(xp)下就会出现错误"你最好能把错误弄出来看一下,要不也不能肯定是数据库链接的问题.
      

  5.   

    有很多奇怪的地方!在不同的机子下(操作系统是都是xp)会出现不同的错误,象有些是什么“block变量未设置”或者是“odbc不支持此功能”再或者是“[microsoft sql server]connectionread”等等,这些都是为什么,我初学vb,真是不懂!~
      

  6.   

    我在2000 professional下运行后出现了“运行时错误‘91’:未设置对象变量或with block变量”,这是什么错误啊?是没有连接上数据库吗?
      

  7.   

    那你就不要用ODBC联接了,改用data link文件联接方式,该可以的
      

  8.   

    Dim conn As New ADODB.Connection
        conn.ConnectionString = "provider=msdasql;DRIVER=Microsoft Visual FoxPro Driver;UID=;Deleted=yes;Null=no;Collate=Machine;BackgroundFetch=no;Exclusive=No;SourceType=DBF;SourceDB=C:\fox\data;"
        conn.Open
      

  9.   

    Leftie(左手,为人民币服务) 你的打开方式还是不行,是不是和机子的配置也有关系啊!!
    另外zgzzgz(数码辣椒) 什么是data link的方式啊,怎样写的?
      

  10.   

    '需要引用:Microsoft ActiveX Data Objects 2.x Library
    '2.x是版本号'打开VFP的数据库的方法
    Sub fox()
        Dim iRe As ADODB.Recordset
        Dim iConc As String
        
        iConc = "Provider=MSDASQL.1;Persist Security Info=False;Extended Properties=""DSN=Visual FoxPro Tables;UID=;SourceType=DBF" & _
            ";SourceDB=f:\My Documents"""  'f:\My Documents是数据库目录
            
        Set iRe = New ADODB.Recordset
        iRe.Open "select * from [aa.dbf]", iConc, adOpenKeyset, adLockOptimistic 'aa.dbf是dbf文件名
        
        MsgBox iRe.Fields(0)
    End Sub