Hello all. Thanks for the help! John pointed out to me the flaw in my code: Change: sSQL3 = 'SELECT * FROM T_Index2DirName WHERE iIndex = hsDB' to: sSQL3 = 'SELECT * FROM T_Index2DirName WHERE iIndex = %ld' % hsDB That did the trick. I had looked at the statement so often that it was *obviously* correct. John also pointed me to the DAO help file that I had not been able to find. Dennis also pointed out the correction, but went on to educate me much more on what I was trying to do. BTW, I had searched extensivly on line for the answer before posting, but was missing the obvious, stupid coding error. Thanks to all for getting me back on track! --Vic
"v.davis2" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > Hi all, > > I am attempting to use Access97 as the database to hold the results of a > python script. I seem to be able to make simple SELECT clauses work (like > SELECT * FROM TableName), but have not been able to figure out how to add > a WHERE clause to that (e.g., SELECT * FROM TableName WHERE myFieldName = > 34) This fails complaining that the wrong number of parameters are > present. > I haved tried DAO36 and I have tried the ADO version with the same > results. Therefore I have to conclude it is my screwup! > Help in the forum or via email would sure be appreciated! > ([EMAIL PROTECTED]) > > Here is the skeleton code: > > import win32com.client > daoEngine = win32com.client.Dispatch('DAO.DBEngine.35') > sDBname = 'vpyAnalyzeDirectorySize.mdb' > sDB = 'c:\\documents and settings\\vic\\my > documents\\tools\\python25\\_myscripts\\'+sDBname > daoDB = daoEngine.OpenDatabase(sDB) > > sSQL1 = 'SELECT * FROM T_Index2DirName' > daoRS = daoDB.OpenRecordset(sSQL1) # this works FINE and I can > play with the record set > > #<snip> > > hsDB = hash(sDB) > sSQL3 = 'SELECT * FROM T_Index2DirName WHERE iIndex = hsDB' # names are > all correct in mdb file > daoRStest = daoDB.OpenRecordset(sSQL3) # this FAILS, even though the > record is there > > daoRS.Close() > > > Traceback (most recent call last): > File "C:\Documents and Settings\Vic\My > Documents\Tools\python25\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py", > > line 310, in RunScript > exec codeObject in __main__.__dict__ > File "C:\Documents and Settings\Vic\My > Documents\Tools\python25\_MyScripts\TestForPosting01.py", line 14, in > <module> > daoRStest = daoDB.OpenRecordset(sSQL3) # this FAILS, even though > record is there > File "C:\Documents and Settings\Vic\My > Documents\Tools\python25\lib\site-packages\win32com\gen_py\00025E01-0000-0000-C000-000000000046x0x5x0.py", > > line 523, in OpenRecordset > , Type, Options, LockEdit) > com_error: (-2147352567, 'Exception occurred.', (0, 'DAO.Database', 'Too > few parameters. Expected 1.', 'jeterr35.hlp', 5003061, -2146825227), None) > -- http://mail.python.org/mailman/listinfo/python-list