用ado建立了一个连接vfp的connection名为vfpCon
连接字符串为
vfpConStr = "provider=msdasql;DRIVER=Microsoft Visual FoxPro Driver;UID=;SourceType=DBF;SourceDB=" & App.Path & ""
我现在想通过这个连接建立几个表,就是dbf文件
请问该如何做!我用过了vfpCon.Execut加sql语句的方法但是提示语法错误!

解决方案 »

  1.   

    建不起来吧!但是可以操作现成的DBF数据库表的!
    我以前写的示例:给你做个参考吧!
    用ADO访问foxpro的自由表、foxpro数据库中的表的及早期Dbase格式的表的记录的示例:
    你首先要在VB菜单中:
    “工程”-->“引用”-->“Microsoft AxtiveX Data Objects 2.1 Library”
    "工程"-->“部件”-->“MicroSoft DataGrid Control 6.0”
    数据类型:自由表
    示例:
    Private Sub cmddisp_click()
      Dim cn As New ADODB.Connection
      Dim rs As New ADODB.Recordset
      Dim cnstr As String
      cnstr = "Driver={Microsoft Visual FoxPro Driver};" & _
               "SourceType=DBF;" & _
               "SourceDB=" & app.path & "\data" & _
               "Exclusive=No"
      cn.Open cnstr
      rs.CursorLocation = adUseClient
      rs.Open "select * from XXX.DBF", cn, adOpenKeyset, adLockBatchOptimistic
      Set DataGrid1.DataSource = rs
      DataGrid1.Refresh
      rs.close
      set rs=nothing
    End Sub
    以上示例程序的作用是将XXX.dbf表中的数据显示在datagrid1控件中。
    数据类型:数据库
    示例:
    Private Sub cmddisp_click()
      Dim cn As New ADODB.Connection
      Dim rs As New ADODB.Recordset
      Dim cnstr As String
      cnstr ="Driver={Microsoft Visual FoxPro Driver};" & _
               "SourceType=DBC;" & _
               "SourceDB=" & app.path & "\data\yourdbname.dbc;" & _
               "Exclusive=No" 
      cn.Open cnstr
      rs.CursorLocation = adUseClient
      rs.Open "select * from XXX.DBF", cn, adOpenKeyset, adLockBatchOptimistic
      Set DataGrid1.DataSource = rs
      DataGrid1.Refresh
      rs.close
      set rs=nothing
    End Sub
    数据类型:早期Dbase格式的dbf文件
    示例:
    Private Sub command1_click()
      Dim cn As New ADODB.Connection
      Dim rs As New ADODB.Recordset
      Dim cnstr As String
      cnstr = oConn.Open "Driver={Microsoft dBASE Driver (*.dbf)};" & _
               "DriverID=277;" & _
               "Dbq=" & app.path & "\data"
      cn.Open cnstr
      rs.CursorLocation = adUseClient
      rs.Open "select * from XXX.DBF", cn, adOpenKeyset, adLockBatchOptimistic
      set datagrid1.datasource=rs
      datagrid1.refresh
      rs.colse
      set rs=nothing
    End Sub
      

  2.   

    哦.谢谢狼哥!
    操作dbf数据表我了解了,但不能删除数据。好像是用了delete 语句后还要用pack语句。
    可在用pack后提示文件正在使用。请问该用什么方法删除数据呀。谢谢!