Neil,
this problem can occur when the table is empty (no records) and the
"select (max(ocs_ID) +1) from OLContacts" return empty (NULL) value.
When using for example MS SQL Server the statement can be changed to:
select ISNULL(max(ocs_ID)) +1 from OLContacts.
When using MS Access the statement can be changed to:
select Iif(max(ocs_ID)is null, 1,max(ocs_ID) + 1) from OLContacts
You can also define a VIEW (query in MS Access) that will return the right value and use this VIEW in Outlook Connect as replacement for the max statement.
Example:
select nextid from MyView