[Return to contents]
Last updated: before December, 1998
The following was posted to the Approach Users Mailing List by Ankur R. Desai:
Sub import Dim t as table 'the table we will replace Dim r as ResultSet 'the object we use to modify the table Dim a$, j% 'extra variables Dim afile as integer 'the file number Set t = CurrentDocument.GetTableByName("tablename") 'Where tablename is the table you want Set r = t.CreateResultSet() 'Saves the hassles of using the connect and query 'At this point however, you could do an SQL query with the Query 'statement to select specific records the following way I think 'r.query.sql = "SELECT ... " 'r.execute() <- returns true if successful If r.NumRows() > 0 Then ans = MessageBox("Yo, dis table be not empty, delete it?",4) if ans = 6 Then Call r.FirstRow() 'go to the first row For j = 1 to r.NumRows() Call r.DeleteRow() 'delete it Next end if End if afile = freefile() 'Get a file number to read from Open "filename.txt" For Input As afile 'we open the filename and give it a filenumber you could ask 'the user for the filename with the InputBox statement 'in another message, I can post the routine to call the 'OPEN-CommonDialog to get the filename from a user using 'The standard Windows 95 OPEN box, it's not that hard 'Search Lotuscript on altavista and you'll find it one the 'first page of results Do Until Eof(afile) 'EOF is End of File Line Input #afuke,a$ 'Read in one line - if you have a comma delimted file you 'could use the Input statement to read each item Call r.AddRow() 'Add a row to the table Call r.SetValue("field1",Mid(a$,1,6)) Call r.SetValue("field2",Mid(a$,7,10)+".0") 'Sets field1 to the first 6 characters of a$ 'and field2 to to the next 10adding a .0 in the end Call r.UpdateRow 'This commits the addition to the table Loop 'Around we go Close afile 'Always close any files you open Call CurrentWindow.refresh() 'Refreshes the data in the current window with the updated dbf Call CurrentWindow.repaint() 'And redraw the window 'you could do anything you want at this point 'for example you could do a find on certain records and 'find all records with a specific value and fill field3 with 'a value, ex: Dim myfind as new FIND 'make a new find object Call myfind.And("field1","Horseradish") 'add an AND condition to find all records where field1 = 'Horseradish Call CurrentWindow.FindSort(myfind) 'excute the find Call CurrentWindow.FillField("field3","foobar") 'fill all field3 in the found set with the work Yuck End Sub
Dim Q as New Query Dim C as New Connection Dim RS as New Resultset If C.ConnectTo("dBASE IV") Then 'Connect to dBASE. Set Q.Connection = C Q.Tablename = "path\filename.dbf" Set RS.Query = Q If (RS.Execute)Then 'Do funky stuff here Call RS.FirstRow() For j = 1 To RS.numrows() Call R.AddRow() Call R.Setvalue("CT_CODE", RS.GetValue("CT_REAS_CD")) Call R.SetValue("CT_DESC",RS.GetValue("CT_REASON")) Call RS.Nextrow() Call R.UpdateRow() .......
c$ = CurrentDocument.GetTableByName("tablename").NumRecords 'Gives you the number of records in a table in your APR 'Could replace "tablename" with CurrentView.MainTable b$ = CurrentWindow.NumRecordsFound 'Gives you the number of records in the current found set 'With these two numbers you can fill in a variable field in a report 'and be able to print out the info in the status bar CurrentView.Footer.Field = "Found "+b$+" of "+c$