rivate Sub Command1_Click()
 
 
 Set dgData.DataSource = Read_Text_FileEnd Sub
Public Function Read_Text_File() As ADODB.Recordset      Dim rs As ADODB.Recordset
      Set rs = New ADODB.Recordset
      Dim conn As ADODB.Connection
      Set conn = New ADODB.Connection
      conn.Open "DRIVER={Microsoft Text Driver (*.txt; *.csv)};" & "DBQ=" & "c:\ " & ";", "", ""   rs.Open "select * from [jjjj.txt]", conn, adOpenStatic, adLockReadOnly, adCmdText
 
 
 
      Set Read_Text_File = rs
     ' Set rs = Nothing
     ' Set conn = Nothing
End Function我用以上程序新建了一个数据库
当我想查找jjjj.txt中的某个数据的时候.
我应该如何编程.

解决方案 »

  1.   

    我覺得不用函數還好﹐因為函數好象返回不了記錄集﹐所以改成以下rivate Sub Command1_Click()
          Dim rs As ADODB.Recordset
          Set rs = New ADODB.Recordset
          Dim conn As ADODB.Connection
          Set conn = New ADODB.Connection
          conn.Open "DRIVER={Microsoft Text Driver (*.txt; *.csv)};" & "DBQ=" & "c:\ " & ";", "", ""
       rs.cursorlocation=aduseclient--->加這行
       rs.Open "select * from [jjjj.txt]", conn, adOpenStatic, adLockReadOnly, adCmdText
     
       Set dgData.DataSource = Read_Text_FileEnd Sub
      

  2.   

    运行你改动后的程序
    到 Set dgData.DataSource = Read_Text_File
    时说是要求对象。。
      

  3.   

    哦﹗錯了改成﹕
    Set dgData.DataSource =rs
      

  4.   

    查找﹕rs.movefirst
    rs.find "字段='aaa'"
    if not rs.eof then
        msgbox"已經找到"
    else
        msgbox"記錄沒找到"
    end
      

  5.   

    数据都显示在dgData。查找的话可以用rst.Find
      

  6.   

    Sub Command1_Click()
          Dim rs As ADODB.Recordset
          Set rs = New ADODB.Recordset
          Dim conn As ADODB.Connection
          Set conn = New ADODB.Connection
          conn.Open "DRIVER={Microsoft Text Driver (*.txt; *.csv)};" & "DBQ=" & "c:\ " & ";", "", ""
       rs.CursorLocation = adUseClient
       rs.Open "select * from [jjj.txt]", conn, adOpenStatic, adLockReadOnly, adCmdText
     
      Set dgData.DataSource = rs  
    rs.MoveFirst
    rs.Find "name='111'"
    If Not rs.EOF Then
        MsgBox "已經找到"
    Else
        MsgBox "記錄沒找到"
    End IfEnd Sub运行到  Set dgData.DataSource = rs  行时总是提示要求对象
      

  7.   

    然后去掉  Set dgData.DataSource = rs  这一行的话
    运行到rs.Find "name='111'"这一行提示说是
    项目在所需的名称或序数中末被发现。
    怎么办?
      

  8.   

    Sub Command1_Click()
          Dim rs As ADODB.Recordset
          Set rs = New ADODB.Recordset
          Dim conn As ADODB.Connection
          Set conn = New ADODB.Connection
          conn.Open "DRIVER={Microsoft Text Driver (*.txt; *.csv)};" & "DBQ=" & "c:\ " & ";", "", ""
       rs.CursorLocation = adUseClient
       rs.Open "select * from [jjj.txt]", conn, adOpenStatic, adLockReadOnly, adCmdText
     
    msgbox"記錄數為﹕" & rs.recordcount  '--如果打開記錄集正確﹐這一行應該顯示為多少記錄數
      Set dgData.DataSource = rs  
    rs.MoveFirst
    rs.Find "name='111'"
    If Not rs.EOF Then
        MsgBox "已經找到"
    Else
        MsgBox "記錄沒找到"
    End If
    //运行到rs.Find "name='111'"这一行提示说是
    dim aa as string
    aa='111'
    改成﹕rs.find "name='" & aa & "'"
      

  9.   

    运行到  Set dgData.DataSource = rs  行时总是提示要求对象
      

  10.   

    Sub Command1_Click()
          Dim rs As ADODB.Recordset
          Set rs = New ADODB.Recordset
          Dim conn As ADODB.Connection
          Dim aa As String
          aa = "111"
          Set conn = New ADODB.Connection
          conn.Open "DRIVER={Microsoft Text Driver (*.txt; *.csv)};" & "DBQ=" & "c:\ " & ";", "", ""
       rs.CursorLocation = adUseClient
       rs.Open "select * from [jjj.txt]", conn, adOpenStatic, adLockReadOnly, adCmdText
     MsgBox "記錄數為﹕" & rs.RecordCount '--如果打開記錄集正確﹐這一行應該顯示為多少記錄數rs.MoveFirstaa = "111"
    rst.Find "name='" & aa & "'"
    If Not rs.EOF Then
        MsgBox "已經找到"
    Else
        MsgBox "記錄沒找到"
    End IfEnd Sub还是一样的。
    运行到rst.Find "name='" & aa & "'"这一行提示说是
    项目在所需的名称或序数中末被发现。
    怎么办?
      

  11.   

    我看了一下。
    在rs.fields.item1.name 这个NAME里面有我所要查找的数据
      

  12.   

    你的datagrid控件名是不是dgData,我試過了﹐如果上面正確的話﹐到這行就沒有問題
      

  13.   

    先不用這行rst.Find "name='" & aa & "'"﹐用上面的代碼﹐看能不能把數據顯示到datagrid里﹖
      

  14.   

    我引用的控件好像不是dgdate.
    请问需要引用的具体名字叫什么。
    不好意思。
    麻烦了。
      

  15.   

    控件名是DataGrid,如果你沒有改動﹐創建時它默認名是DataGrid1
      

  16.   

    最左边那两排是不是叫工具框。
    我的工具框里面只有一个跟数据库有关的控件
    叫data
    我是直接又击加到我的FORM1上的。
    没有改名字叫data1
      

  17.   

    我引用的是microsoft active datas object 2.5 library
      

  18.   

    是用控件DataGrid,而不是控件DBGrid﹐這兩個是不一樣的
      

  19.   

    具體你在工程(P)-->設定使用控件(O)-->控制項-->Microsoft DataGrid Control 6.0 (SP5)(OLEDB)
      

  20.   

    我在部件里面找到了mivrosoft datagrid control 6.0
    是这个吗?
    加了还是不行。
      

  21.   

    我的是mivrosoft datagrid control 6.0 (oledb)
    没有你的那个(SP5)
    加上了还是不行。
      

  22.   

    好了。。我知道了。
    改名叫DGDATA就可以了。
    但是运行到rs.Find "name='" & aa & "'"这一行提示说是
    项目在所需的名称或序数中末被发现。
    怎么办?
      

  23.   

    顶,我没有直接对txt进行查找过,
    不过我这有个,可以把txt转化成数据库的我发给你
    Dim sStr As String
    Dim con As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Private Sub Command1_Click()
    Open App.Path + "\turkey.txt" For Input As #1
     While Not EOF(1)
      Input #1, sStr
      rs.AddNew
      rs(0) = sStr
     Wend
      rs.Update
      rs.Close
    End SubPrivate Sub Form_Load()
     mdbPath = App.Path + "\file.mdb"
     con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & mdbPath & ";Persist Security Info=False"
     rs.Open "select * from data", con, adOpenDynamic, adLockOptimistic
    End Sub
    这只是个例子,你看看 每一行做为一条记录
      

  24.   

    rs.Find "name='" & aa & "'"
    name你的TXT里没有吧
      

  25.   

    name你的TXT里没有吧

    说对了
      

  26.   

    Dim sStr As String
    Dim con As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Private Sub Command1_Click() '把txt转换成数据库
    Open App.Path + "\turkey.txt" For Input As #1
     While Not EOF(1)
      DoEvents
      Input #1, sStr
      rs.AddNew
      rs(0) = sStr
     Wend
      rs.Update
      rs.Close
    End SubPrivate Sub Command2_Click() '产生txt
    Open App.Path + "\turkey.txt" For Output As #1
     For i = 1 To 50000
      DoEvents
      Write #1, i
     Next i
    Close #1
    End SubPrivate Sub Command3_Click() '查找里边是4554 有MSGBOX提示
     rs.Close
     rs.Open "select * from data where 内容='4554' ", con, adOpenDynamic, adLockOptimistic
     If rs.EOF Then
      MsgBox "没有找到"
     Else
      MsgBox "找到了"
     End If
    End SubPrivate Sub Form_Load()
     mdbPath = App.Path + "\file.mdb"
     con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & mdbPath & ";Persist Security Info=False"
     rs.Open "select * from data", con, adOpenDynamic, adLockOptimistic
    End Sub
    改后的,测试过了,如果有疑问加我qq51365133