2011-12-05 27 views
0

なぜこれが起こっているのか分かりません。たぶん新鮮な目が助けになるかもしれない。Python Whileレコードセットではありません.EOFはありません.MoveNext

アクセスデータベースのテーブル、たとえばC:\ dbase.mdbには、IDと説明の2つのフィールドを持つtProcedureGroupsというテーブルがあります。

ID Description 
1 DIAGNOSTIC 
2 PREVENTATIVE 
3 RESTORATIVE 

だから私のレコードセットが無限... ID「\ tの」よりも多くする必要があります+説明+「\ n」は は、ここに私のコード...これはあなたのいくつかに起こったのに持っていたのですPythonの教祖がそこにいる!

このサイトの皆さん、ありがとうございました。 Pythonで


import win32com.client 

def Procedures(listed): 
    DB = r"C:\dbase.mdb" 
    engine = win32com.client.Dispatch("DAO.DBEngine.36") 
    db = engine.OpenDatabase(DB) 
    sql = "select * from [tProcedureGroups]" 
    access = db.OpenRecordset(sql) 
    while not access.EOF: 
     for i in listed: 
      print i + '\t' + str(access.Fields(i).value) + '\n' 
     access.MoveNext 

fields = ["ID", "Description"] 
get_procs = Procedures(fields) 
+1

access.MoveNext 

を私はしばらくの間、ループタグを削除し、Pythonの達人への最大の可視性を得るために、Pythonのタグを追加提案します。 –

+0

ありがとう@RachelHettinger –

答えて

0

あなたは()で明示的にメソッドを呼び出す必要があります。

ので変更:

access.MoveNext() 
+0

ARG!それほどありがとうございました。あなたが言いました後、私は働いていた他の部分を見て、私がそれらのために使ったことに気付きましたが、今度はそれらを逃しました。 –