Visual Basic Tips


テキストファイルへのアクセス(DAO)


DAOを使用してテキストファイルをデータベースのように扱う事が出来ます。読込や検索、レコードの追加は問題なく可能なのですが、修正、削除はできません…

サンプルで使用するテキストファイルには下図のようにデータが格納されています。
一行目(行見出し)がフィールド名として扱われます。



※サンプル中で使用されているMakeFileNameとStripFileNameに関しては
  パス名からファイル名取得
  パス名からファイル名を除く
  を参照して下さい。 


Private Sub Form_Load()
  Dim db As Database
  Dim rs As Recordset
  Dim strPath As String

  If Right(App.Path, 1) = "\" Then
    strPath = App.Path
  Else
    strPath = App.Path & "\"
  End If

  strPath = strPath & "work.txt"

  'レコードの読込(MoveFirst,MoveLast,MoveNext,MovePreviousが使用可能です。)
  Set db = OpenDatabase(StripFileName(strPath), False, False, "TEXT;")
  Set rs = db.OpenRecordset(MakeFilename(strPath), dbOpenDynaset)

  Do Until rs.EOF
    Debug.Print "<MoveNext>---------------------"
    Debug.Print "得意先cd  = " & rs("得意先cd")
    Debug.Print "前回請求残 = " & rs("前回請求残")
    Debug.Print "前月売掛残 = " & rs("前月売掛残")
    Debug.Print "当月売上額 = " & rs("当月売上額")
    rs.MoveNext
  Loop

  'レコードの検索(FindFirst,FindLast,FindNext,FindPreviousが使用可能です。)
  rs.FindFirst "得意先cd = 'tok003'"
  If rs.NoMatch Then
  Else
    Debug.Print "<FindFirst>--------------------"
    Debug.Print "得意先cd  = " & rs("得意先cd")
    Debug.Print "前回請求残 = " & rs("前回請求残")
    Debug.Print "前月売掛残 = " & rs("前月売掛残")
    Debug.Print "当月売上額 = " & rs("当月売上額")
  End If

  'レコードの追加(Edit=修正,Delete=削除は出来ない様です。)
  rs.AddNew
  rs("得意先cd") = "tok006"
  rs("前回請求残") = 60000001
  rs("前月売掛残") = 60000002
  rs("当月売上額") = 60000003
  rs.Update

  rs.Close
  db.Close
End Sub


DownLoad vbtips108.lzh 2KB (VB6.0)