可以引用ADO对象来搞定。
你首先要在VB菜单中:
“工程”-->“引用”-->“Microsoft AxtiveX Data Objects 2.1 Library”
示例:Private Sub Form_Load()
  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
End Sub以上示例程序的作用是将XXX.dbf表中的数据显示在datagrid1控件中。

解决方案 »

  1.   

    以上的.dbf文件是VFP的。
    如果你的dbf文件是早期版的dbase格式的话那么就将连接字符串更改一下。记得使用本程序要先引用ADO对象。(引用方法见上)
    示例:Private Sub Form_Load()
      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
      text1.text=trim(rs.Fields(0))
      text2.text=trim(rs.fields(1))
      .......
      text6.text=trim(rs.fields(5))
    End Sub以上示例程序的作用是将XXX.dbf表中的各列的第一条记录的各列数据分别显示在不同的textbox控件中。几点说明:app.path是取得应用程序的当明目录,假设你的就用程序目录为:c:\myprg下,数据文件在c:\myprg\data目录下。那么app.path & "\data" 就代表了c:\myprg\data
    即  app.path是取的相对路径,你也可以使用绝对路径c:\myprg\data.
    在你的程序中要将我写的示例程序中相应的地方进行修,如表名,数据源路径等。以上程序我已测试通过,祝你好运…!!!
      

  2.   

    我不需要将数据显示出来。
    我的需求是:
    我有一个DBF文件:
    船名    船代码
    AB      01
    CD      02
    EF      03我现在有一个船名值:CD
    我要用CD在DBF文件中进行查找,并把02这个船代码取出来。我想知道如何用CD在DBF文件中进行查找,并把02这个船代码取出来?代码如何写?
      

  3.   

    你的DBF文件是什么格式的是VFP还是早期的dbase格式的??
      

  4.   

    Private Sub Form_Load()
      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 ship.DBF where 船名='" & Trim(ucase(Text1.Text)) & "', cn, adOpenKeyset, adLockBatchOptimistic'假设dbf文件名为:ship.dbf
      if rs.eof <> true then
         msgbox "船名为:" & text1.text & "的代码为:" & rs!船代码
      end if
    End Sub其中text1.text中的数据由用户输入。
    例如输入CD,那么查询的就是CD这条船的代码。
      

  5.   

    等,上面的运行不起来,因为代码放在了load事件了
    在窗体中加一个命令按扭。
    改成;
    Private Sub command1_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 ship.DBF where 船名='" & Trim(ucase(Text1.Text)) & "', cn, adOpenKeyset, adLockBatchOptimistic'假设dbf文件名为:ship.dbf
      if rs.eof <> true then
         msgbox "船名为:" & text1.text & "的代码为:" & rs!船代码
      end if
    End Sub
      

  6.   

    晕太忙了
    少了一个双引号。rs.Open "select * from ship.DBF where 船名='" & Trim(ucase(Text1.Text)) & "'", cn, adOpenKeyset, adLockBatchOptimistic''将上面的这一句改成这一句。在& "'后加一个"