2017-01-01 3 views
0

я работаю над проектом Access и мне нужна помощь с чем-то ..Показать все записи для одного ID

У меня есть 2 таблицы, первый названный tblHoliday, с полями (ID, OfficerID, OffType, От , To) [From] и [To] - поля даты.

Вторая таблица - tblService с полями (ID, OfficerID, Date). В каждой таблице есть отношения между [OfficerID].

Каждый [OfficerID] может иметь две записи или более в таблице tblService ,, я разработал форму для tblHoliday ввести отпуск офицера, мой вопрос (я должен проверить если [Дата] для тот же [OfficerID] в таблице tblService между [From] и [To], для OfficerID в таблице tblHoliday), например: офицер просит отпуск с 01.01.2012 по 10/10/2017, если у него есть услуга в 1/3/2017 даст сообщение «офицер службы на 1/3/2017»

Мой код работает, но только для первой записи в tblService для одной и той же OfficerID

Dim dtmMyDate As Date 
    dtmMyDate = DLookup("Date", "tblService", "OfficerID = " & Me.OfficerID) 

    If dtmMyDate > Me.From And dtmMyDate < Me.To Then 
     MsgBox "The Officer has a Service" 
    Else 
     MsgBox "Done" 
    End If 

ответ

0

Создать запрос:

Select 
    tblService.* 
    tblHoliday.* 
Where 
    tblService.OfficerID = tblHoliday.OfficerID 
    And 
    tblService.Date Between tblHoliday.From And tblHoliday.To 

Откройте записей из этого или присвоить его ListBox либо петли или перечислить обижая службы дней.

+0

спасибо за ответ .. но я действительно не понимаю .. все, что мне нужно, это MsgBox в форме, когда я ввожу данные –

+0

Затем откройте этот запрос как набор записей и зациклируйте это, когда вы добавите имя каждого найденного офицера к строковой переменной. Префикс 'vbCrLf', если не первая запись. Наконец, используйте переменную как «Подсказка» для вашего окна сообщения, чтобы отобразить список имен. – Gustav

Смежные вопросы