Ваша главная проблема заключается в том, что в .Net временной частью DateTime является не DateTime , а TimeSpan :
DateTime dateTime = new DateTime(2019, 6, 4, 22, 55, 0);
TimeSpan timePart = dateTime.TimeOfDay;
В Access (VBA), однако, значение «только время» - это время даты VBA Дата эпохи , которая равна 1899-12-30.В зависимости от того, как вы вставляете время в таблицу Access, вам может потребоваться применить временную часть к эпохе, чтобы получить значение, подобное тому, которое Access использует:
DateTime dateTime = new DateTime(2019, 6, 4, 22, 55, 0);
TimeSpan timePart = dateTime.TimeOfDay;
DateTime vbaEpoch = new DateTime(1899, 12, 30);
DateTime vbaTime = vbaEpoch.AddTicks(timePart.Ticks);
Конечно, при чтении значений обратно, игнорируйте часть даты:
TimeSpan timeOfDay = vbaTime.TimeOfDay;