Attached is one solution which I think is far easier to understand than what I think you are trying to do.
First of all, I've renamed your table TimeZones (no space) and added an extra boolean field LocalZone & an extra record for Central Time (CT)
I am based in the UK so I've ticked GMT as LocalZone. You need to change that to CT.
Next I've created a standard module with these two functions
Code:
Function GetLocalZoneUTC() As Integer 'get UTC value for local time zone
GetLocalZoneUTC = Nz(DLookup("UTC", "TimeZones", "LocalZone=True"), 0)
End Function
Function GetTimeZoneAdjustment(intID As Integer) As Integer
'calculate difference in time for specified time zone
GetTimeZoneAdjustment = DLookup("UTC", "TimeZones", "ID =" & intID) - GetLocalZoneUTC()
End Function
Then I used these in a query:
Code:
SELECT TimeZone, Desc, DateAdd('h',GetTimeZoneAdjustment([ID]),Time()) AS LocalTimeFROM TimeZones;
Finally I used that query as the record source for this form:
You can add as many time zones as you wish. However, as written the code doesn't allow for
a) Time Zones which aren't integer values compared to UTC
b) Daylight Saving Times
If you need to deal with either of those I can suggest how to modify this
Hope that helps