Access Database Design & Programming, 3rd Edition by Steven Roman Unconfirmed error reports are from readers. They have not yet been approved or disproved by the author or editor and represent solely the opinion of the reader. If you have any error reports or technical questions, you can send them to booktech@oreilly.com. (Please specify the printing date of your copy.) This page was last updated September 1, 2004. Here's a key to the markup: [page-number]: serious technical mistake {page-number}: minor technical mistake : important language/formatting problem (page-number): language change or minor formatting problem ?page-number?: reader question or request for clarification UNCONFIRMED errors and comments from readers: [4] Row 2; 1 error in downloaded examples. In LIBRARY_FLAT data the author of Jayne Eyre has been changed from Austen to Bronte but the AuID is 1 for both. {7} 2nd paragraph; If there are 799 or 800 million characters and each character takes 2 bytes in Unicode then it should be 1600 megabytes or 1.6 gigabytes of space rather than 160 gigabytes of space mentioned. (32) middle of 2nd paragraph; fcthe should be the {47} Text after table 4-16; (ISBN, PubPhone) and: (PubPhone, PubName) should be: (ISBN, PageCount) and: (PageCount, Price) (59-60) [59] Beginning of Table; The graphic table example for the "Intersection" text section is unfortunately split between pages 59 and 60. This gives the illusion of four total tables in the example. Plus, the complete lack of labels for the tables is somewhat annoying (also true for the "Union" example on p. 57, the "Difference" example on p. 60, and the "Cartesian Product" example on p. 63). Labels for the original and resultant tables would make the examples much clearer. (73) 2nd Table 4th row e/f/g/j should be e/f/g/h [89] 1st code section, 5th line; 5th line should read PubID TEXT(10), CONSTRAINT Test FOREIGN KEY (PubID) REFERENCES and not PubID TEXT(10) CONSTRAINT Test FOREIGN KEY (PubID) REFERENCES there is a missing comma which will cause an sql error. [89] near bottom (above "Notes" header); I can't tell if the sentence "As you can see, the Single- and Multi-Column Constraint clauses..." matches the last two lines of the ALTER TABLE syntax just above. Please consider rewriting the sentence to make it clearer. Also consider rewriting the syntax (why does "Multi-ColumnConstraint" only go with "ADD CONSTRAINT" and "MultiColumnIndexName" only go with "DROP CONSTRAINT"?). MS' help file is not very clearly written either. [99] Top of page, 1st section of code; 1st line of this code should read SELECT DISTINCTROW PUBLISHERS.PubID, PUBLISHERS.PubName instead of SELECT DISTINCTROW PubID, PubName otherwise, you will receive an error stating correctly that PubID may refer to a column in more than one table in the FROM statement. (134) First Paragraph; Last sentence in first paragraph starts "When you selecting...." should be "When you are selecting..." or "When selecting..." {145} Example 9-2 A Propery and Method Example Sub exaPropertyMethod - should be - Sub exaPropertyandMethod. {204} code example in Encryption; use constant $SECRET_PHRASE => "......."; Should it not be: use constant SECRET_PHRASE => "......."; [208] figure; The figure on p. 208 uses light gray for objects and dark gray for collections; the figure on p. 210 uses dark gray for objects and light gray for collections. I suggest using a consistent set of shades in both figures. Also an "Objects"/"Collections" legend, as in the figure on p. 210, might be nice. (210) figure; "Internal IASM" should be "Internal ISAM". [221] 2nd paragraph; The example code doesn't run, giving a run-time error. More particularly it gives a run-time error '13': Type mismatch. This error occurs at the line "For Each prp In db.TableDefs!BOOKS.Properties" (the quotes are shown here to distinguish the line of code and are not entered into the module). The full code I entered is: Sub exaProperties() Dim db As Database Dim prp As Property Set db = CurrentDb For Each prp In db.TableDefs!BOOKS.Properties Debug.Print prp.Name Next prp End Sub [224] "User-Defined Properties" section; This applies to Access '97 (don't know about 2000). There's a detail about user-defined properties that the example code won't reveal. I haven't found it in the Access help file either. You can't add a user-defined property to a field unless the field has been appended to its table and the table has been appended to its database. I haven't checked if a similar restriction applies to the other types of objects that can have user-defined properties. (230) bottom of 3rd paragraph (just above "Containers" header); The text says "We will discuss how to create a relation in .". Evidently there was supposed to be an automatically-generated number, but it's missing. [253] Code Example; The strSQL= line is missing closing quotes at the end of the line (281) Under Default Database; The sentence "By setting a default database for a particular connection, avoids the need...." Not sure if this is proper or not...I would remove the "By" and the comma. ?285 and 317-8, Example 17-7? The information on 285 appears inconsistent with Example 17-7 285 middle of page, last 2 lines in the definition of Static cursor state: "Note that all client-side cursors are static cursors. Even if we specify a different type of cursor for a client-side cursor, ADO will open a static cursor instead." Whereas, 317 in Example 17-7 the code includes the following: rs.CursorLocation = adUseClient rs. Open "SELECT * FROM [MasterTable$]", cn, adOpenDynamic, adLockOptimistic and 318 Top of page, fourth line; Debug.Print "Client-Side Dynamic Recordset:" (313) IN PRINT: Top of page, third line; "...>or the string "Microsoft Jet 3.51 OLE DB Provider"." SHOULD BE: "...>or the string "Microsoft OLE DB Provider for ODBC Drivers"." {339} Example 19-2; I think the logic in Example 19-2 is incorrect... or at least it didn't work for me. I got the expected results with this code. Do While Not rs.EOF lRunningSum = lRunningSum + rs!Duration rs.Edit rs!Duration = lRunningSum rs.Update rs.MoveNext Loop [353] 1st; To get the result as Table 19-16, a LEFT OUTER JOIN is supposed to be used in the where clause of the outer SELECT statement. [353] OpenRecordset("ComposersOutput"); If the table ComposersOutput does not exist when this program is run, the following error occurs: Run-time error '3078' The Microsoft Jet database engine cannot find the input table or query 'ComposersOutput'. Make sure it exists and that its name is spelled correctly. Additionally, deleting the column 'Weight' and running this code results in the following error: Run-time error '3265': Item not found in this collection. Since this code is supposed to dynamically add columns to the table 'ComposersOutput' it is reasonable to assume that the code should be able to handle one or both of these conditions. {401} The directory given on page 401 for example.zip is wrong. Also, example.zip contains library_flat.rtf, not library_flat.doc. {401} Example Module - coding error?; Example Module of downloaded sample files. Error in utilization of CreateDatabase method. Need to add: Dim wrkDefault As Workspace and change: Set dbNew = CreateDatabase("c:\temp\MoreBks", dbLangGeneral) to: Set dbNew = wrkDefault.CreateDatabase("c:\temp\MoreBks", dbLangGeneral) {440} Just below diagram; Steps 3 and 4 of the security procedure are the wrong way round. If you follow the steps as set out in the book you can't log on as any user (except administrator)because no permissions have yet been set. {999} On-line file of examples; On-line examples file CodeAccess3.mdb (2002 Feb 05 11:36) In Sub ExcelExample(), "Connect.mdb" should be "Connect.xls".