The *DBLOOP command starts a loop which scans all the rows in a sheet. The form of the *DBLOOP command is:

[*DBLOOP loopindex = fileindex;sheetname]

[*DBLOOP loopindex =(start)fileindex;sheetname]

[*DBLOOP loopindex = fileindex;sheetname;columnname,columnname…]

[*DBLOOP loopindex =(start)fileindex;sheetname;columnname,columnname…]

Where start is the row to start from. Use *LAST if all rows are not needed.

IMPORTANT: the start number starts at 1 so will be numerically one smaller that the actual row in the spreadsheet because row 1 is used for the header row that identifies the columns.

Where the index name fileindex was used in the *DBOPEN command. The file must be open when *DBLOOP is used.

The sheetname is the name of the sheet in the Excel file or the table in the Access file.

VERY IMPORTANT: you must not nest DBLOOP command on the same worksheet.

VERY IMPORTANT: if sheetname contains blanks you must surround it with quotes for example: ’r;My sheet’.

The index name loopindex is used in references to cells in the spreadsheet (cellref).

If the sheet contains a lot of columns the desired columns can be listed as columnname separated by commas.

VERY IMPORTANT: if columnname contains blanks you must surround it with quotes for example: ’r;My column’.

The loop must end with a *DBEND command.

Cell references with loopindex can only be used between the *DBLOOP and *DBEND commands.

Any number of *DBLOOP commands can be used on an open file.

The PP command *SLE cannot be used with *DBLOOP and *DBEND.

Examples of *DBLOOP commands:

[*dbopen dfNameFile=’File of Names.xls’]

[*dbloop dlList=dfNameFile;Names]


[*dbend dlList]

[*dbloop dlList=dfNameFile;’First name’,Surname,Title]

[dlList.title][dlList.’First name’][dlList.surname]

[*dbend dlList]

[*dbclose dfNameFile]

Examples of DBLOOP with start row specified:

[*dbloop dlThis=(2)dfFile;Sheet1]

[*dbloop dlThat=(FirstRowWanted-1)dfFile;Sheet1]