База mdb имена полей как переменные

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
AndrNet
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 08.06.2009 (Пн) 9:09

База mdb имена полей как переменные

Сообщение AndrNet » 28.02.2014 (Пт) 18:48

Народ, подскажите плиз strTable какой синтаксис если это не имя поля, а переменная. strTable может принимать любое из названия полей базы в одной таблице.
Adodc2.Recordset![strTable] = True

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: База mdb имена полей как переменные

Сообщение Хакер » 28.02.2014 (Пт) 19:39

Adodc2.Recordset.Fields.Item(strTable)
или более коротко
Adodc2.Recordset.Fields(strTable)
или более коротко
Adodc2.Recordset(strTable)
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

AndrNet
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 08.06.2009 (Пн) 9:09

Re: База mdb имена полей как переменные

Сообщение AndrNet » 28.02.2014 (Пт) 21:56

Я так пробовал. Странно, но не работает RunTime 3265. Если пишу имя поля то все нормально, если как переменная то ошибка. Может для поля тип переменной нужен другой.

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: База mdb имена полей как переменные

Сообщение ger_kar » 01.03.2014 (Сб) 6:54

Кусок кода в студию, будем посмотреть...
Бороться и искать, найти и перепрятать

AndrNet
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 08.06.2009 (Пн) 9:09

Re: База mdb имена полей как переменные

Сообщение AndrNet » 01.03.2014 (Сб) 17:42

Хакер, прошу прощения это я затупил. У меня была переменная поля как Byte, поставил String все нормально. Хотя может и неверный тип переменной, там от числовые значения полей от 122014 до 122020.

AndrNet
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 08.06.2009 (Пн) 9:09

Re: База mdb имена полей как переменные

Сообщение AndrNet » 02.03.2014 (Вс) 18:41

Подскажите, а как теперь засунуть переменную названия period поля в SQL запрос
Adodc2.RecordSource = "SELECT * FROM [base] WHERE ((([base].[period])=True));" - так не работает

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: База mdb имена полей как переменные

Сообщение ger_kar » 02.03.2014 (Вс) 19:22

Основных вариантов 2.
1) Собирать SQL запрос по частям, например так:
Код: Выделить всё
Adodc2.RecordSource = "SELECT * FROM [base] WHERE ((([base].[" & period & "])=True));"

2) Заменять часть строки SQL запроса значением переменной
Код: Выделить всё
Adodc2.RecordSource = Replace("SELECT * FROM [base] WHERE ((([base].[period])=True));", "period", period)

Для читабельности кода и для исключения замены, того, чего не нужно я например к заменяемым значениям добавляю префикс %.
В этом случае 2 вариант выглядел бы так
Код: Выделить всё
Adodc2.RecordSource = Replace("SELECT * FROM [base] WHERE ((([base].[%period])=True));", "%period", period)
Бороться и искать, найти и перепрятать

AndrNet
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 08.06.2009 (Пн) 9:09

Re: База mdb имена полей как переменные

Сообщение AndrNet » 02.03.2014 (Вс) 19:51

ger_kar, вот это спасибо Вам. Все отлично работает! Я чесно таких ньюансов не знал.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 03.03.2014 (Пн) 10:02

Неужели в VB6 нет нормального способа подстановки переменных в запросы???
UPDATE: Сорри, что-то я невнимательно посмотрел и прозевал, что подставляется имя поля, а не значение...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 48

    TopList