While working on VB projects with associated Jet databases, I found that I was creating a lot of individual handling functions for reading, writing, and validating data. It was hard to keep track of changes made to the table structures and to their associated handling functions.As a result, I’ve developed new programming style. My read /write and special functions are all in one routine selected by case logic based on descriptive strings. The strings are used only within the programs and are self documenting to some extent. Data is passed through a Public WorkVariant array:
Public MyDB As DatabasePublic WorkVariant(10) As VariantDim Dummy As IntegerSet MyDB = OpenDatabase("testjet3db")'Sample callsDummy = NameTableIO("writerecord")Dummy = NameTableIO("readrecord")Public Function NameTableIO_ (ByVal whichAction As String) As Integer'Assumes navigation to the record has 'been made externallyDim MyTable As RecordsetDim ErrorStage As StringOn Error GoTo NameTableIOError NameTableIO = True ErrorStage = "OpenRecordSet" Set MyTable = MyDB.OpenRecordset("NameTable") ErrorStage = "AfterOpen" Select Case whichAction Case "readrecord" WorkVariant(1) = MyTable![FirstName] WorkVariant(2) = MyTable![Age] Case "writerecord" MyTable.Edit MyTable![FirstName] = WorkVariant(1) MyTable![Age] = WorkVariant(2) MyTable.UpdateCase "validateage" 'specialized routine 'etcEnd SelectNameTableIOErrorExit: If ErrorStage <> "OpenRecordSet" Then MyTable.Close End If Set MyTable = NothingExit FunctionNameTableIOError: NameTableIO = False MsgBox Error$ &_ " Error trap in NameTableIO " & _ "at " & ErrorStage & " Action: " & whichAction Resume NameTableIOErrorExitEnd Function