Last updated: before December, 1998
In this script, Jerry Sikes demonstrates how to use the ReplaceWithResultSet method to allow the user to select which
database table they want the .apr to access. This is the ultimate work around for people who need to access more than one
database with a single .apr.
Sub DropDownExample '-----Jerry Sikes 1998.09.15 '-----To test, create a unbound fieldbox '-----change to dropdown list '-----use automatic values '-----name the object MyDropList Dim lbx As DROPDOWNBOX Dim lbxVal() As String Set lbx = CURRENTVIEW.body.MyDropList Dim pathName As String, fileName As String '----- substitute your path pathName$ = "c:\Lotus\work\Approach\*.dbf" fileName$ = Dir$(pathName$, 0) MyCount% = 0 '----- First do loop counts number of qualifying tables, in path '----- You must limit the tables presented '----- to only those that will map properly '----- if more than one type of table exists in this directory, '----- try using a common prefix on all qualifying tables '----- "x:\path\Z*.dbf" where Z090898.dbf, Z091098.dbf...Zmmddyy.dbf" Do While fileName$ <> "" MyCount% = MyCount% + 1 'Print fileName$ fileName$ = Dir$() Loop '-----This sets the number of variables to the correct count Redim lbxVal(MyCount%-1) '-----Reset the counter MyCount% = 0 '-----Force back to top of list fileName$ = Dir$(pathName$, 0) Do While fileName$ <> "" '----Load the strings lbxVal(MyCount%) = fileName$ '-----get the next file fileName$ = Dir$() MyCount% = MyCount%+1 Loop '-----Transfer the entire list to the screen object lbx.SetList lbxVal lbx.text = "" End Sub Sub ReplaceTableExample '-----Jerry Sikes 1998.09.15 '-----This assumes the table selected is of identical '-----structure as the original '-----no error trapping '-----it also assumes the target table is table(0) '-----it also assumes, no alias to table(0) '-----in production, this script would be launched on the change event '-----of the drop down list Dim c As New connection Dim qu As New query Dim rs As New ResultSet qu.Tablename = "c:\Lotus\Work\Approach\" & currentview.body.MyDropList.text 'Print qu.tablename Set qu.connection = c Set rs.query = qu If c.connectto("dBASE IV") Then If rs.execute Then RVal = CurrentDocument.tables(0).ReplaceWithResultSet(RS) End If End If End Sub