Dave, thanks for your reply.

I see why you're asking about whether the Regiment and Battalion are known, but most people who are researching someone will "usually" know what Regiment someone was in and more often or not the Battalion too. The idea was to provide an idea of when someone might've enlisted, which is usually because so many records were destroyed in the Blitz, meaing that this detail was missing. Regiments and Battalions can be found on other types of war records, but not Enlistment Dates.

I was thinking that it would become too complicated if just a soldier number were entered, which might potentially give a number of permutations across Regiments / Battalions.

Incidentally, not all soldier numbers were made up purely of numerals, some were prefixed with "G/", "G", "L/", "M", "M2", "T/", "T2/", "T3/", "SE/" or "SS/" to describe but a few. I haven't tried entering any of these yet as the Hampshire Regiment uses standard numbers. But looking at the code I see that the Soldier Number input is checking for a numeral.

I'm not understanding how the date issue fits in when trying to read and retrieve from existing data. Mind you it wouldn't be the first time I've missed something obvious. The date entry seems to be working fine at the moment and is allowing entry of dates prior to and after 1900 without issue so far. Or are you trying to allow for someone who might've enlisted on February 29th? The form will only be used to find an Enlistment Date from the Soldier Number and not the other way around.

I've altered the form and code to use camelback to try and adhere to best VBA principles as per #24.

Thanks again!