2013-11-22 2 views
0

У меня есть таблица с несколькими простыми полями. Идентификатор транзакции (TID, заполненный с помощью Autonumber), Дата, Статус транзакции (Целое число), Статус и Заметки. Статус - это поле поиска, которое извлекает значения из другой таблицы. Он отображает текст состояния, но сохраняет идентификатор состояния как целое. Заметки - это поле для заметок. Обычно, когда у нас есть определенный статус, поле «Примечание» обычно имеет один и тот же текст. Он часто меняет часто, что я не могу связать статус и заметки. Тем не менее, я хочу, чтобы поле «Примечания» в моей форме предназначалось для этой таблицы, чтобы автопопуляция с наиболее распространенными записями, основанными на статусе, выбранном при добавлении нового TID. Позвольте привести пример.Autopopulate Текст, основанный на контрольном значении

Я создаю новый TID. Я ввожу дату, затем статус. В этот момент времени, когда я покидаю элемент «Контроль состояния», я хочу, чтобы поле заметок было автопопулировано по умолчанию, основанное на статусе. Вот код, который я создал, но он не работает. Я попытался заменить номер дела, то есть дело 132, с «132» и текст состояния «Закрыто», но ни один из них не работает. Любая помощь будет полезна.

Private Sub Status_Ctrl_LostFocus() 
    Dim NoteDetail As String 
    Dim OffStat As Integer 
    OffStat = Me.Status_Ctrl.Value 
    If Me!Details = Null Or Me!Details = "" Then 
     Select Case OffStat 

      Case 132 'Offer Closed 
       NoteDetail = "Offer Closed." 

      Case 133 'Offer Failed 
       If Me.Parent!EMCust_Ctrl = 32 Then 
        NoteDetail = "Offer rejected. EM returned to Buyer." 
       Else 
        NoteDetail = "Offer rejected." 
       End If 

      Case 134 'Offer Accepted 
       NoteDetail = "Offer Accepted." 

      Case 164 'Offer Presented 
       NoteDetail = "Offer Presented. EM held for acceptance." 
     End Select 

     With Me!Details_Ctrl 
      .Value = NoteDetail 
     .SetFocus 
     End With 
    End If 
End Sub 
+1

- это код, попадающий в оператор case case? Похоже, что он не может туда попасть, основываясь на утверждении if. – HelloW

+1

Задайте точку останова на строке 'OffStat =' и выполните код по одной строке за раз с помощью клавиши «F8». Это условие является подозрительным: 'If Me! Details = Null' ... use' If IsNull (Me! Details) ', если вы хотите проверить, является ли' Me! Details' ** ** Null. (Он никогда не может быть равным ** для Null, потому что ничто никогда не может быть равным ** для Null, даже не для другого Null.) – HansUp

+0

Спасибо HansUp. Это был Нуль, который вызывал у меня проблемы. Сейчас это прекрасно. Не могли бы вы поместить свой пост в ответ на мой вопрос, чтобы я мог дать вам ответ на его ответ? – Dragonsen

ответ

1

Установите точку останова на линии OffStat = и выполните код по одной строке за раз с помощью клавиши F8. Это условие является подозрительным: если Me! Details = Null ... use If IsNull (Me! Details), если вы хотите проверить, является ли Me! Details Null. (Он никогда не может быть равен Null, потому что ничто никогда не может быть равным Null, даже не другому Null.) - HansUp 22 ноября в 20:07

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