Access-VBA - параметър за име на полето

Проблем

Извиквам функция, която ще търси стойността на конкретно поле за точна регистрация. За да направя това, предавам един параметър в офиса си от името на моята маса, идентификатора на записа и името на полето.

 Функция FindLinkedString (ByVal Таблица като String, ByVal ID Като целочислено, ByVal Поле като String) Като String Sun As Database mydb2 Сън LinkedTable Като Recordset Sun linkedTableCount As Integer Set mydb2 = CurrentDb () Задайте LinkedTable = mydb2.OpenRecordset (Таблица) За linkedTableCount = 1 За LinkedTable.RecordCount Ако LinkedTable! ID = ID Тогава FindLinkedString = таблица & "!" Поле & GoTo Fin_FindLinkedString Край Ако LinkedTable.MoveNext Следваща Fin_FindLinkedString: LinkedTable.Close mydb2.Close End функция 

Проблемът е, че FindLinkedString = таблицата & "!" & Field, очевидно е честна игра, тъй като няма да намери стойност в db, записва низа чрез завъртане на "Table" и "Field" от параметрите (напр. "Рецензии" Name ", тогава искам да се появи" Smith ")

Решение

Можете да използвате това:

 ... LinkedTable.MoveFirst Въпреки че не е LinkedTable.EOF Ако LinkedTable.Fields ("ID") = ID Тогава FindLinkedString = LinkedTable.Fields ("Име") LinkedTable.Close mydb2.Close Set LinKedTable = Нищо не е зададено mydb2 = Нищо не излизане Функция LinkedTable .MoveNext Wend End Ако '... 

Но може да е по-просто:

 ... Задайте LinkedTable = mydb2.OpenRecordset ("SELECT Име от" & Таблица & "WHERE ID =" & ID) FindLinkedString = LinkedTable.Fields (0) ... 
Предишна Статия Следваща Статия

Топ Съвети