2015-07-31 4 views
0

Я пытаюсь создать каскадные комбинированные поля, но я не могу заставить его работать. Например, если я выбираю конкретный компьютер в первом поле со списком, тогда второе поле со списком должно показывать только жесткий диск, совместимый с этим компьютером. Я также предоставил ссылку на созданную мной базу данных. Может ли кто-нибудь помочь мне с этим?Не удается получить каскадные комбинированные поля

У меня есть 2 таблицы с полями:

  • tblComputer (Компьютер)
  • tblHDD (HDD, компьютер)

cboxComputer Row Источник: ВЫБРАТЬ tblComputer.Computer ОТ tblComputer;

cboxHDD Строка Источник: SELECT tblHDD.HDD, tblHDD.Computer FROM tblHDD;

Private Sub cboxComputer_AfterUpdate() 
    Me.cboxHDD.RowSource = "SELECT HDD " & _ 
          "FROM tblHDD " & _ 
          "WHERE Computer = " & Nz(Me.cboxComputer) & _ 
          "ORDER BY HDD" 
End Sub 

https://drive.google.com/file/d/0Bye-M8FI1tRURmQ0MEFzRjBCdWM/view?usp=sharing

+0

Что не работает? CboxHDD не загружается? есть ли сообщение об ошибке? – BobNoobGuy

+0

Извините за то, что не в том числе, что было не так. Второй комбинированный блок не работает. Когда я выбираю второе поле со списком, он говорит «синтаксическая ошибка (отсутствующий оператор) в выражении запроса« Computer = SonyORDER BY HDD »». –

ответ

1

Компьютер поле в базе данных является строка типа данных. Попробуйте поставить апострофы вокруг имени следующим образом:

Private Sub cboxComputer_AfterUpdate() 
    Me.cboxHDD.RowSource = "SELECT HDD " & _ 
         "FROM tblHDD " & _ 
         "WHERE Computer = '" & Nz(Me.cboxComputer) & "' " & _ 
         "ORDER BY HDD" 
End Sub 
+0

Я печатаю это, и он говорит: «Ошибка компиляции: ошибка синтаксиса» –

+0

Вам также нужно пространство после закрывающего апострофа или перед словом ORDER. Для этого я обновил свой ответ. – DiegoAndresJAY

+0

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