|
|
|
| Кто-нить пробовал использовать функцию dlookup («ИмяПоля», «ИмяТаблицы», «Код=»&[аргумент3]) таким образом, чтобы не только аргумент3 использовался для поиска значения в названии поля, но и «ИмяПоля» определялось бы программно внутри VBA в зависимости от переменной в форме?
есть тбл коэффициентов расчета заработной платы в зависимости от группы по оплате и стажа:
Группа Стаж01 Стаж02 Стаж03 Стаж04 Стаж05
G 1 4,29 4,37 4,46 4,55 4,65
G 2 3,99 4,07 4,15 4,24 4,33
G 3 3,72 3,8 3,87 3,95 4,04
G 4 3,41 3,47 3,54 3,61 3,69
Хотелось бы по двум параметрам в форме (группе оплаты и стажу) найти нужный коэффициент таким образом, чтобы ИмяПоля (Стаж01, или Стаж02…) подставлялось в функцию).
или как то по другому решить проблему? | |
|
| |
|
|
|
|
Public Sub Test()
Dim TableName As String
Dim FieldName As String
Dim Id As Long
TableName = "MsysObjects"
FieldName = "Name"
Id = -2147483646
Debug.Print DLookup(FieldName, TableName, "Id=" & Id)
FieldName = "DateCreate"
Debug.Print DLookup(FieldName, TableName, "Id=" & Id)
End Sub
|
| |
|
| |
|
|
|
| Всегда шарахался от сочетаний типа "MsysObjects" - вдруг чего напорчу. Это не очень опасно?
Почему такой Id = -2147483646. Это тоже что-то системное? Неясно его значение. Не могли ли вы также объяснить FieldName = "DateCreate" и два одинаковых Debug.Print DLookup(FieldName, TableName, "Id=" & Id)? | |
|
| |
|
|
|
|
?dlookup("[mcode2]","mcode","mcode='M01'")
M001
?dlookup("[mcode]&[mcode2]","mcode","mcode='M01'")
M01M001
|
| |
|
| |
|
|
|
|
|
| неясно при mcode='M01'")
M001 и M01M001? | |
|
| |
|
|
|
| не волнуйтесь, там все ок | |
|
| |
|
|
|
| это тоже самое что на русьипорте | |
|
| |
|
|
|
| http://am.rusimport.ru/MsAccess/topic.aspx?ID=369 | |
|
| |
|
|
|
| Это я видел, мне нужно не два значения по одному коду, а наоборот: одно значение по двум переменным. вСЕ РАВНО СПАСИБО ЗА ОТЗЫВЧИВОСТЬ! | |
|
| |
|
|
|
| а вы пробовали в условие агрегатной функции написать два условия для переменных через AND или OR? | |
|
| |
|
|
|
| не представляю, как это сделать ( | |
|
| |
|
|
|
| А что вам мешает в переменной указать имя поля, а переменную подставить в первом аргументе функции?
Можно и непосредственно в аргументе «ИмяПоля» выбрать нужное имя с помощью функции Switch или Choose. | |
|
| |
|
|
|
| так и хочу вместо имени поля подставить переменную, но запутался в кавычках((( Примера нет у вас? Заранее благодарен! | |
|
| |
|
|
|
| Всем спасибо! Разобрался (с кавычками). Кому интересно:
SalaryCoeff = DLookup("" & [strStageColumnName] & "", "сГруппОплаты", "Код=""" & [Ggroup] & """") | |
|
| |
|
|
|
|
SalaryCoeff = DLookup("" & [strStageColumnName] & "", "сГруппОплаты", "Код=""" & [Ggroup] & """")
|
И что, вот так с квадратными скобками вокруг переменной работает?
Лучше всунуть их в переменную, а затем так:
SalaryCoeff = DLookup(strStageColumnName, "сГруппОплаты", "Код=""" & [Ggroup] & """")
или так (с апострофами в условии):
SalaryCoeff = DLookup(strStageColumnName, "сГруппОплаты", "Код='" & [Ggroup] & "'") | |
|
| |
|
|
|
| Работает! но ваш вариант тоже попробую. Спасибо! | |
|
| |