|
|
|
Функция as field
|
|||
|---|---|---|---|
|
#18+
ДИНАМИЧЕСКИЙ ЗАПРОС НЕ ПРЕДЛАГАТЬ!!!! В конструкторе query, например простой (select) сформировать название поя, которое нужно вывести. Например, есть поля Qty1, Qty2, Qty3. Нужно вывести поле "Qty" + CStr(номер) Я пробую через : Public Function qqq(PN As Integer) As Field Dim MyDb As Database Dim FN As String Set MyDb = CurrentDb FN = "Qty" + CStr(PN) Set qqq = MyDb.TableDefs("Table").Fields(FN) End Function Выдается ошибка. Че не так? Или какие еще есть предложения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 13:25:42 |
|
||
|
Функция as field
|
|||
|---|---|---|---|
|
#18+
RurkДИНАМИЧЕСКИЙ ЗАПРОС НЕ ПРЕДЛАГАТЬ!!!! В конструкторе query, например простой (select) сформировать название поя, которое нужно вывести. Например, есть поля Qty1, Qty2, Qty3. Нужно вывести поле "Qty" + CStr(номер) Я пробую через : Public Function qqq(PN As Integer) As Field Dim MyDb As Database Dim FN As String Set MyDb = CurrentDb FN = "Qty" + CStr(PN) Set qqq = MyDb.TableDefs("Table").Fields(FN) End Function Выдается ошибка. Че не так? Или какие еще есть предложения? Машу вать!!! А кто набор данных открывать будет? Дядя Степа? Через коллекцию TableDefs Вы получили объект типа таблица, а не ее данные!!! Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. + И ваще есть функция DLookUp() - очень полезная в таких случаях (Подробности в хелпе) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 13:38:34 |
|
||
|
Функция as field
|
|||
|---|---|---|---|
|
#18+
а ошибку-то почему не привели? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 13:38:36 |
|
||
|
Функция as field
|
|||
|---|---|---|---|
|
#18+
paparome RurkДИНАМИЧЕСКИЙ ЗАПРОС НЕ ПРЕДЛАГАТЬ!!!! В конструкторе query, например простой (select) сформировать название поя, которое нужно вывести. Например, есть поля Qty1, Qty2, Qty3. Нужно вывести поле "Qty" + CStr(номер) Я пробую через : Public Function qqq(PN As Integer) As Field Dim MyDb As Database Dim FN As String Set MyDb = CurrentDb FN = "Qty" + CStr(PN) Set qqq = MyDb.TableDefs("Table").Fields(FN) End Function Выдается ошибка. Че не так? Или какие еще есть предложения? Машу вать!!! А кто набор данных открывать будет? Дядя Степа? Через коллекцию TableDefs Вы получили объект типа таблица, а не ее данные!!! Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. + И ваще есть функция DLookUp() - очень полезная в таких случаях (Подробности в хелпе) В общем написал так: Public Function qqq(PN As Integer) As Field Dim rs As DAO.Recordset Dim FN As String FN = "Qty" + CStr(PN) Set rs = CurrentDb.TableDefs("Table").OpenRecordset Set qqq = rs(FN) rs.Close Set rs = Nothing End Function Пишет - Object invalid or no longer set ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 13:49:57 |
|
||
|
Функция as field
|
|||
|---|---|---|---|
|
#18+
А DLookUp - медленно работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 13:50:55 |
|
||
|
Функция as field
|
|||
|---|---|---|---|
|
#18+
set rs = Currentdb.Openrecordset(......) -------------- crazy about... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 13:53:00 |
|
||
|
Функция as field
|
|||
|---|---|---|---|
|
#18+
в Acc97 - работает вероятно речь идет о 2000/XP/2003 - тогда надо подключить DAO + писать DAO.Field чтобы не перепутать ADODB.Field и DAO.Field Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 13:55:31 |
|
||
|
Функция as field
|
|||
|---|---|---|---|
|
#18+
Rurk ...В общем написал так: Public Function qqq(PN As Integer) As Field Dim rs As DAO.Recordset Dim FN As String FN = "Qty" + CStr(PN) Set rs = CurrentDb.TableDefs("Table").OpenRecordset Set qqq = rs(FN) rs.Close Set rs = Nothing End Function Пишет - Object invalid or no longer set Т.е. Recordset (или Database) закрыли, а поле хотите чтоб осталось? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 13:56:42 |
|
||
|
Функция as field
|
|||
|---|---|---|---|
|
#18+
Public Function qqq(PN As Integer) As Field Dim rs As DAO.Recordset Dim FN As String FN = "Qty" + CStr(PN) Set rs = CurrentDb.OpenRecordset("Table") Set qqq = rs(FN) rs.Close Set rs = Nothing End Function Public Sub www() Dim f As Field Set f = qqq(2) End Sub Так вот в www - f - object invalid or no longer set ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 13:58:43 |
|
||
|
Функция as field
|
|||
|---|---|---|---|
|
#18+
Shuhardв Acc97 - работает работает то, что привел Rurk? Т.е. функция возвращает поле? Не верю.... В вашем примере не проверяется значение, возвращенное функцией ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 14:00:51 |
|
||
|
Функция as field
|
|||
|---|---|---|---|
|
#18+
Serge Gavrilov Rurk ...В общем написал так: Public Function qqq(PN As Integer) As Field Dim rs As DAO.Recordset Dim FN As String FN = "Qty" + CStr(PN) Set rs = CurrentDb.TableDefs("Table").OpenRecordset Set qqq = rs(FN) rs.Close Set rs = Nothing End Function Пишет - Object invalid or no longer set Т.е. Recordset (или Database) закрыли, а поле хотите чтоб осталось? Ага, посоветовали, ща попробую ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 14:02:09 |
|
||
|
Функция as field
|
|||
|---|---|---|---|
|
#18+
Shuhardв Acc97 - работает вероятно речь идет о 2000/XP/2003 - тогда надо подключить DAO + писать DAO.Field чтобы не перепутать ADODB.Field и DAO.Field Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Да я вообще тока Dao и подключил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 14:04:04 |
|
||
|
Функция as field
|
|||
|---|---|---|---|
|
#18+
Serge Gavrilov Rurk ...В общем написал так: Public Function qqq(PN As Integer) As Field Dim rs As DAO.Recordset Dim FN As String FN = "Qty" + CStr(PN) Set rs = CurrentDb.TableDefs("Table").OpenRecordset Set qqq = rs(FN) rs.Close Set rs = Nothing End Function Пишет - Object invalid or no longer set Т.е. Recordset (или Database) закрыли, а поле хотите чтоб осталось? Public Function qqq(PN As Integer) As Field Dim rs As DAO.Recordset Dim FN As String FN = "Qty" + CStr(PN) Set rs = CurrentDb.OpenRecordset("Òîâàð") Set qqq = rs(FN) End Function Public Sub www() Dim f As Field Set f = qqq(2) End Sub все равно Field не вернул ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 14:05:02 |
|
||
|
Функция as field
|
|||
|---|---|---|---|
|
#18+
Shuhardв Acc97 - работает + писать DAO.Field чтобы не перепутать ADODB.Field и DAO.Field работает и в XP DAO. Field ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 14:10:37 |
|
||
|
Функция as field
|
|||
|---|---|---|---|
|
#18+
Serge Gavrilov Shuhardв Acc97 - работает работает то, что привел Rurk? Т.е. функция возвращает поле? Не верю.... В вашем примере не проверяется значение, возвращенное функцией работает приведенный мной кусок кода - возврат функции не проверял ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 14:12:30 |
|
||
|
Функция as field
|
|||
|---|---|---|---|
|
#18+
Rurk Public Function qqq(PN As Integer) As Field Dim rs As DAO.Recordset Dim FN As String FN = "Qty" + CStr(PN) Set rs = CurrentDb.OpenRecordset("Òîâàð") Set qqq = rs(FN) End Function Public Sub www() Dim f As Field Set f = qqq(2) End Sub все равно Field не вернул Дык, это не поможет, rs-то уже нет, хоть вы его явно и не закрыли ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 14:12:54 |
|
||
|
Функция as field
|
|||
|---|---|---|---|
|
#18+
Shuhard работает приведенный мной кусок кода - возврат функции не проверял про это я и сказал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 14:14:22 |
|
||
|
Функция as field
|
|||
|---|---|---|---|
|
#18+
отматывая к началу - хотелось бы более полное описание задачи,т.е. что предполагается делать с полем,если удастся вернуть его из функции , для SELECT DAO.FIELD не очень нужен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 14:18:14 |
|
||
|
Функция as field
|
|||
|---|---|---|---|
|
#18+
авторPublic Function qqq(PN As Integer) As Field Щас ругаться матерно начну!!! Вам, господин хороший, значение поля нужно или объект типа Field? Ну получите вы свой объект, и что вы с ним делать будете? Галочку в нем менять, типа, разрешено или не разрешено в него Null писать? 1. DLookUp работает нормально - индексы надо правильные строить, тогда и проблем не будет! 2. Я в своем примере писал функцию типа AS VARIANT и присваивал значение без ключевого SET авторSet qqq = rs(FN)Обнозначно приведет к ошибке, ибо значение поля c именем FN однозначно не является объектом типа Field. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 15:16:17 |
|
||
|
Функция as field
|
|||
|---|---|---|---|
|
#18+
Все! Отбой! Спасибо за посты. Объявил рекордсет глобальным и функция вернула Field Задача то собственно и сводилась к тому чтобы проверить возврат из ф-ии Field Ну а если кому похохотать хочется - хотел проверить что будет если я в конструкторе запросов вставлю ф-ю возвращающую поле ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 15:36:00 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32870417&tid=1669228]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
46ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
71ms |
get tp. blocked users: |
2ms |
| others: | 208ms |
| total: | 367ms |

| 0 / 0 |
