2013-09-30 4 views
0

Я создал базу данных в Access. Вот как я установил свой рабочий процесс.Select Case for Access не работает

  1. Создано стол «поля».
  2. Дал каждое поле их уникальное имя столбца (т.е.. Поле команды проекта имеет Fld10078 поле ID)
  3. Created «билет» форму
  4. Произведено отчет, который имеет карты макет смотрит «по продаже билетов» а с желаемыми полями скомпонованных в нужном месте ,
  5. Каждая команда проекта на «билете» имеет свой собственный цвет.

Прежде чем я пришел, это уже было закодировано и работает нормально. Каждая команда проекта имеет свой собственный уникальный цвет. Я хотел добавить две новые команды с их уникальными цветами, но теперь она появляется. Только первые 4 команды будут показывать цвет в билетной карточке.

Вот код:

Select Case Me.Fld10078 

     Case "Team A" 
      Me.Fld10078.BackColor = RGB(204, 0, 0) 
      Me.Fld10078.ForeColor = vbWhite 
     Case "Team B" 
      Me.Fld10078.BackColor = RGB(51, 102, 255) 
      Me.Fld10078.ForeColor = vbWhite 
     Case "Team C" 
      Me.Fld10078.BackColor = RGB(0, 153, 0) 
      Me.Fld10078.ForeColor = vbWhite 
     Case "Team D" 
      Me.Fld10078.BackColor = RGB(255, 153, 0) 
      Me.Fld10078.ForeColor = vbWhite 
     Case "Team E" 
      Me.Fld10078.BackColor = RGB(204, 0, 0) 
      Me.Fld10078.ForeColor = vbWhite 
     Case "Team M" 
      Me.Fld10078.BackColor = RGB(0, 128, 128) 
      Me.Fld10078.ForeColor = vbWhite 
     Case Else 
      Me.Fld10078.Visible = False 
    End Select 

Вот что у меня есть для источника управления:

=IIf([Fld10078]="Team A","Team A",IIf([Fld10078]="Team B","Team B",IIf([Fld10078]="Team C","Team C",IIf([Fld10078]="Team D","Team D",IIf([Fld10078]="Team E","Team E",IIf([Fld10078]="Team M","Team M")))))) 

Team E и Team M не отображаются цвета. Они показывают текст, но не цвета.

+1

Пожалуйста, постарайтесь понять разницу между VB.NET и VBA. – Steve

+0

Если у 'Me.Fld10078' есть свойство .Text', это то, на чем базируется Select Case? – OneFineDay

+0

DonA, я не знаю, что вы имеете в виду :(Вот где я заявлял, что это то, о чем вы просите. Me.Fld10078.Visible = True И Fld10078 не является текстовым полем. Это ярлык. – user2832411

ответ

0

Доступ может иногда путаться, если имя элемента управления совпадает с именем поля базы данных.

Попробуйте переименовать свой ярлык Fld10078 в нечто другое, например TeamLabel или lblFld10078. Используйте свойства (F4), вкладку «Все», «Имя».

EDIT для уточнения комментарии

Предполагая, что Fld10078 это имя столбца, и lblFld10078 это ярлык, который ссылается на это, выполните следующие действия:

  • Set lblFld10078.Visible = True перед Select Case заявление
  • изменить свойство Caption lblFld10078 из инструкции IIf на = [Fld10078]
+0

Я изменил имя, и оно не сработало :( Я не знаю, как это решить сейчас. Как выглядят первые четыре, а не последние два. Не имеет никакого смысла. – user2832411

+0

Как только вы установите свойство Visible - false, вы не возвращаете его в true, поэтому оно не будет отображаться снова. Кроме того, когда я делаю Fld10078 ярлык, свойство BackColor недоступно (тестирование в Access 2007). Наконец, это похоже, что ваш длинный оператор IIf не нужен, потому что для каждого значения вы возвращаете одно и то же. Просто установите его = [Fld10078]. – phaedra