You can use the SQL statement "CREATE TABLE", and specify fields and data types within this, eg "CREATE TABLE SOFTWARE (SOFTWARE_ID INTEGER NOT NULL, SOFTWARE CHAR(40) NOT NULL, PUBLISHER CHAR(40), LICENCES INTEGER);".

This would create a table called Software, with four fields - Software_ID, Software, Publisher, Licences. The type of the data allowed is specified as well - integer, text(CHAR) where the entry length is also specified, and the NOT NULL expression shows that certain fields must be populated.

For more info on SQL functions look here, or try the Access docs if you'll be using Access.

I would have thought, given the example above, that the most efficient way to perform any DB admin would be independent of the data-gathering process. I suppose it depends on the size and complexity of your network...

HTH

That might not be exactly what you meant. Whoops! Are you thinking more of the archival process and the rebuilding of new tables, identical to the archived data?

If so, building the tables, as shown above is not such a problem. The trickier part would be identifying your criteria for archival, and actually performing this process. I think (no SQL guru, me!) that you can rename a table, so maybe it would be a case of deciding when there was enough data, either by:

code:
 If $Recordset.RecordCount > 1000 ;too many records!
ArchiveTable($CurrentTable) ;possible set of DB admin UDF's coming on!
Endif

Or parsing the Date field and deciding to archive when the data covers three months (or whatever!)

HTH as well.

[ 07 February 2002: Message edited by: Breaker ]

_________________________
================================================
Breaker