OK, I got it to work.
I recorded my changing of the connection string, then I replaced the
recorded file name with the variables. This works:
..Connection = Array( _
"OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=" _
, Range("path"), Range(Period & "File"), _
";Mode=Share Deny Write;Extended Properties=""HDR=YES;"";Jet
OLEDB:System database="""";Jet OLEDB:Registry " _
, _
"Path="""";Jet OLEDB:Engine Type=35;Jet OLEDB

atabase Locking
Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Tra" _
, _
"nsactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create
System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB" _
, _
"

on't Copy Locale on Compact=False;Jet OLEDB:Compact Without
Replica Repair=False;Jet OLEDB:SFP=False" _
)
I thought this rather ugly, so I rearranged it a bit into this. This
doesn't work. There must be some subtle problem with this array statement.
SInce I can't see why this doesn't work, I'll revert to the uglier version
and just leave it at that.
Const connect1 As String = "Provider=Microsoft.Jet.OLEDB.4.0;User
ID=Admin;Data Source="
Const connect2 As String = ";Mode=Share Deny Write;Extended
Properties=""HDR=YES;"";Jet OLEDB:System database="""";Jet OLEDB:Registry
Path="""";Jet OLEDB:Engine Type=35;Jet OLEDB

atabase Locking Mode=0;Jet
OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;"
Const connect3 As String = "Jet OLEDB:New Database Password="""";Jet
OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet
OLEDB

on't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica
Repair=False;Jet OLEDB:SFP=False"
..Connection = Array(connect1, Range("path"), Range(Period & "File"),
connect2, connect3)