Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2014, 07:44   #1
ЛюдмилаД
Новичок
Джуниор
 
Регистрация: 23.04.2014
Сообщений: 3
По умолчанию Ссылки на поля

Добрый день!
Есть таблица, одно из полей которой содержит имя поля другой таблицы. Как правильно написать ссылку?
Людмила
ЛюдмилаД вне форума Ответить с цитированием
Старый 23.04.2014, 07:59   #2
AndVGri
Форумчанин
 
Регистрация: 10.02.2012
Сообщений: 109
По умолчанию

Добрый день
Цитата:
Как правильно написать ссылку?
Где?
AndVGri вне форума Ответить с цитированием
Старый 23.04.2014, 08:12   #3
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

имя поля другой таблицы
---или значение из некой ячейки другой таблицы
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 23.04.2014, 09:39   #4
ЛюдмилаД
Новичок
Джуниор
 
Регистрация: 23.04.2014
Сообщений: 3
По умолчанию

Ссылка в выражении, чтобы обратишься к полю в таблице. Имя поля в текстовой перемен ной
ЛюдмилаД вне форума Ответить с цитированием
Старый 23.04.2014, 09:50   #5
ЛюдмилаД
Новичок
Джуниор
 
Регистрация: 23.04.2014
Сообщений: 3
По умолчанию

Поясняя. В таблице1 есть поле1. Вообще говоря таблица1 это описание правил расчета. В поле1 содержится имя поля другой таблицы, например, таблица2 , у которой есть поле2, поле3 и и.д. То есть содержимое поле1 "поле2". Требуется вычислить выражение с участием полей таблицы2. То есть воспользоваться таблицей1 для ссылок.
ЛюдмилаД вне форума Ответить с цитированием
Старый 23.04.2014, 20:03   #6
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте ЛюдмилаД.
Ваша задача может решаться с помощью подобной пользовательской функции:
Код:
Function readFromT2()
Const sQ = "select top 1 поле1 from таблица1"
Dim d As DAO.Database, r As DAO.Recordset, s$
Set d = CurrentDb
Set r = d.Recordsets
r.OpenRecordset sQ
If Not r.EOF Then s = r(0) & ""
r.Close
If Len(s) Then
    r.OpenRecordset ("slelect top 1 " + s + " from таблица2")
    If Not r.EOF Then readFromT2 = r(0)
    r.Close
End If
Set r = Nothing
Set d = Nothing
End Function
обращаться к ней можно или из VBA кода,
или использовать её в SQL конструкциях - select readFromT2(), ... from ...
или применять в качестве источника данных контролов (объектов форм/отчётов) - =readFromT2()

Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 24.04.2014, 03:18   #7
AndVGri
Форумчанин
 
Регистрация: 10.02.2012
Сообщений: 109
По умолчанию

Если у вас существует поле связи между таблицами Таблица1 и Таблица2, то можно возвращать не только первое "случайное" значение из множества значений требуемого поля Таблица2.
Пусть Таблица1 состоит как минимум из таких полей (ИмяВнешенгоПоля, ПолеСвязи,...)
Таблица2 (ПолеСвязи, Поле1, Поле2, Поле3,...).
VBA-функция будет выглядеть так
Код:
'Предполагается, что поле связи LinkId числовое
'для текстового нужно задать кавычки
'для даты преобразование в строку формата #mm/dd/yyyy# с подстановкой без кавычек
Public Function ExternalFieldValue(ByVal LinkId As Variant, ByVal FieldName As String) As Variant
On Error GoTo errHandle
    ExternalFieldValue = Application.CurrentProject.Connection.Execute("Select [" & FieldName & "] From [Таблица2] Where [ПолеСвязи]=" & CStr(LinkId))(0).Value
Exit Function
errHandle:
    ExternalFieldValue = Null
End Function
SQL запрос с использованием функции будет выглядеть так
Код:
Select ExternalFieldValue([ПолеСвязи],[ИмяВнешнегоПоля]) From [Таблица1];
AndVGri вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание поля-ссылки Ericnex БД в Delphi 0 23.05.2013 21:29
Ссылки на поля идущие не по порядку Nikola K. Microsoft Office Excel 2 21.12.2011 13:11
Измененние цвета фона поля (поля со списком) при редактировании TimRus Microsoft Office Access 2 17.05.2010 21:56
как получить значение поля грид на основе значения другого lookUp поля malayka БД в Delphi 0 21.04.2010 19:06
Выявление одинаковости значений поля в одной талице по значению поля в другой nikmay SQL, базы данных 4 13.08.2009 12:51