2015-06-03 3 views
2

Позвольте мне объяснить, у меня есть поля (текстовые поля) на форме, как показано нижеПрисвоить значение в текстовое поле на форме, основанной на множественном значении текста boxex с, если условие - MS ACCESS

textbox1 = can hold Yes or NO 
textbox2 = can hold Yes or NO 
textbox3 = can hold Yes or NO 
textbox4 = can hold Yes or NO 

textboxResult держит Сцепленная значение меток (титров) только тех текстовых полей, значения которых «Да»

Я испробовал множество возможных решений (на мой взгляд), включая ниже, но не повезло. Протестировано ниже кода с оператором OR.

If Me.textbox1.Value = "Yes" And Me.textbox2.Value = "Yes" And _ 
       Me.textbox3.Value = "Yes" And Me.textbox4.Value = "Yes" Then 
    Me.textboxResult.Value = Me.Label1.Caption & "," & 
    Me.Label2.Caption & "," & Me.Lable3.Caption & "," & 
    Me.Label4.Caption 
Else 
    Me.textboxResult.Value = "NA" 
End If 

Я хочу присвоить надписи надписи этих текстовых полей, значение которых равно YES. Пожалуйста, помогите

+1

В чем «подписи» текстовых полей вы говорите? У Texboxes нет подписи! И вы упоминаете «Ярлыки» только один раз. Вы должны понять, какая разница между 'Label' и' Textbox' и между 'Value' и' Caption'! ** И ** включают пример ожидаемого результата ** И ** что означает «но не удача»? Разве это не работает, это сбой, не достигается ли if-тело? – luk2302

+0

спасибо luk2302 для быстрый ответ. Я также отредактировал тело вопроса и код для четкого понимания. Это работает, но не так, как я хочу, чтобы он работал. Я только хочу объединить (соединить) те текстовые ярлыки, которые кариес ДА. – DawaR

ответ

1

Если я правильно понял, вам понадобится связанное значение всех меток TextBox. Таким образом, один массив AND может и не быть вариантом, возможно, проверять каждый элемент управления. что-то вроде.

Dim txtResult As String 

If Me.textbox1 = "Yes" Then _ 
    txtResult = txtResult & Me.textbox1.Controls.Item(0).Caption & "," 

If Me.textbox2 = "Yes" Then _ 
    txtResult = txtResult & Me.textbox2.Controls.Item(0).Caption & "," 

If Me.textbox3 = "Yes" Then _ 
    txtResult = txtResult & Me.textbox3.Controls.Item(0).Caption & "," 

If Me.textbox4 = "Yes" Then _ 
    txtResult = txtResult & Me.textbox4.Controls.Item(0).Caption & "," 

If Len(txtResult) > 0 Then 
    Me.textboxResult = Left(txtResult, Len(txtResult)-1) 
Else 
    Me.textboxResult = "NA" 
End If 

ПРИМЕЧАНИЕ - Me.TextBoxName.Controls.Item (0) возвращает соответствующий ярлык с TextBoxName. Если текстовое поле не имеет ассоциации, то вы можете столкнуться с ошибками.


EDIT - После того, как ваши изменения, если вы просто хотите использовать подпись лейбла, просто замените Me.textbox.Controls(0).Caption на Me.LableName.Caption

+1

Это то, что я бы назвал аналогичными решениями: D – luk2302

+0

Спасибо PaulFracis, он работал по желанию. – DawaR

+0

Рад помочь. :) Удачи – PaulFrancis

1

Судя Ваш комментарий вы не должны делать в сочетании, если а 4 Seperate ifs для каждого текстового поля:

Dim txt As String 
txt = "" 
If Me.textbox1.Value = "Yes" Them _ 
    txt = txt & Me.Label1.Caption & ", " 

If Me.textbox2.Value = "Yes" Then _ 
    txt = txt & Me.Label2.Caption & ", " 

If Me.textbox3.Value = "Yes" Then _ 
    txt = txt & Me.Label3.Caption & ", " 

If Me.textbox4.Value = "Yes" Then _ 
    txt = txt & Me.Label4.Caption & ", " 

If Len (txt) > 0 Then 
    txt = Left(txt, Len(txt) - 2) 
Else 
    txt = "NA" 
End If 

Me.textboxResult = txt 
+0

Абсолютно или что-то типа *** Великие умы думают одинаково ***;) – PaulFrancis

+0

Спасибо luk2302 тоже за вашу помощь и решение :) – DawaR

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

  • Нет связанных вопросов^_^