2014-02-10 6 views
0

Я новичок в VBA и нуждаюсь в помощи, получая команду для работы. Мне нужно иметь 2 оцененных взгляда и новую запись, созданную при нажатии кнопки. У меня проблемы с dlookup.Базовый код VBA (dlookup)

Private Sub Add_Record_Click() 
Dim db As Database 
Dim r As Recordset 
Dim x As Integer 

Set db = CurrentDb 
Set r = db.OpenRecordset("Copy Of Employee Work Statistics") 

Y = r.Fields("School") 
z = r.Fields("School Id") 

Y = DLookup(Table![Routes].School, Table![Routes], "Route" = Table![Routes].[Route Name]) 
z = DLookup("school ID", "Customer Database", "school" = Y) 

r.Update 

DoCmd.GoToRecord , , acNewRec 

End Sub 

ответ

0

DLookup("school ID", "Customer Database", "school" = Y)

Ваш синтаксис не так, вы должны быть в том числе все критерия (третий параметр) в строке следующим образом:

DLookup("[school ID]", "[Customer Database]", "[school] = '" & Y & "'")

где & используется для конкатенация строк, а Y - ваша ранее объявленная переменная. Я также призываю вас использовать квадратные скобки ([, ]), ссылаясь на имя столбца или таблицы, чтобы избежать конфликтов из-за зарезервированных слов или любых смешных ошибок из-за пробелов в именах.

Что касается части обновления, то Y и z являются просто переменными. Насколько я понимаю, ваше намерение состояло в том, чтобы прямо обновить ваш набор записей. Поэтому:

r.Fields("School") = DLookup("[" & Table![Routes].School & "]", _ 
"[" & Table![Routes] & "]", "[Route] = '" & Table![Routes].[Route Name] & "'") 

r.Fields("School Id") = DLookup("[school ID]", "[Customer Database]", _ 
"[school] = '" & Y & "'") 

r.Update 
Смежные вопросы