программно добавить поле к [u]запросу[/u]

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Tof
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 09.08.2004 (Пн) 8:52
Откуда: Екатеринбург

программно добавить поле к [u]запросу[/u]

Сообщение Tof » 29.10.2004 (Пт) 8:32

подскажите, плииз, как добавить программно поле к существующему запросу базы аксцессовской...
добавить поле к теблице с помощью "Aletr table" прекрасно получается.. а не могу найти как добавить именно к запросу

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 29.10.2004 (Пт) 9:01

тоесть? что ты имеешь ввиду?
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Tof
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 09.08.2004 (Пн) 8:52
Откуда: Екатеринбург

Сообщение Tof » 29.10.2004 (Пт) 9:14

ну есть запрос в базе Аксцесса.. мне надо программно добавить поле к этому запросу

Sedge
Alternative Choice
Alternative Choice
Аватара пользователя
 
Сообщения: 1049
Зарегистрирован: 16.05.2002 (Чт) 18:23
Откуда: Somewhere-In-The-Net

Сообщение Sedge » 29.10.2004 (Пт) 9:41

А что мешает сразу писать требуемый запрос в программе, а не хранить его в Access'е?

Tof
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 09.08.2004 (Пн) 8:52
Откуда: Екатеринбург

Сообщение Tof » 29.10.2004 (Пт) 9:50

ну вот такая задача появилась

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 29.10.2004 (Пт) 13:33

Добавить поле к запросу? К результату запроса?
Или чтоб оно уже включалось в запрос?
Ничё не понятно
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Tof
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 09.08.2004 (Пн) 8:52
Откуда: Екатеринбург

Сообщение Tof » 01.11.2004 (Пн) 8:19

а что не понятного.. я ж пишу... существует запрос, как таблицы в базе .... и надо к нему добавить поле.. как к таблице можно добавить поле через Alert table ... ADD COLUMN ..

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 01.11.2004 (Пн) 10:59

боюсь что нет, только перезаписью запроса
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Tof
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 09.08.2004 (Пн) 8:52
Откуда: Екатеринбург

Сообщение Tof » 01.11.2004 (Пн) 11:14

ну а как перезаписать

Tof
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 09.08.2004 (Пн) 8:52
Откуда: Екатеринбург

Сообщение Tof » 01.11.2004 (Пн) 11:15

причем я через ADO подключаюсь

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 01.11.2004 (Пн) 11:38

ну а как перезаписать


cn.Execute "ALTER VIEW ..."
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Mao
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 95
Зарегистрирован: 10.10.2004 (Вс) 13:09

Сообщение Mao » 01.11.2004 (Пн) 11:43

Берешь свой запрос, записываешь его в переменную:
Код: Выделить всё
strSQL="SELECT .... FROM .... (и т.д.)"

или для удобства разбиваешь его на части.
Потом добавляешь к SELECT части нужное тебе поле ("[Таблица].[Поле] as Поле")
далее, удаляешь этот запрос в запросах:
Код: Выделить всё
Dim qdf As QueryDef
Dim query As QueryDef
  CurrentDb.QueryDefs.Refresh
  For Each qdf In CurrentDb.QueryDefs
    If qdf.name = "Запрос" Then
        CurrentDb.QueryDefs.Delete qdf.name
    End If
  Next qdf

и записываешь свой новый запрос с добавленным полем в "Запрос":
Код: Выделить всё
  Set query = CurrentDb.CreateQueryDef("Запрос", strSQL)

А по другому, по мойму, не получится.

Tof
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 09.08.2004 (Пн) 8:52
Откуда: Екатеринбург

Сообщение Tof » 01.11.2004 (Пн) 12:15

это для DAO возможно.. у меня подключение через ADO

Tof
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 09.08.2004 (Пн) 8:52
Откуда: Екатеринбург

Сообщение Tof » 01.11.2004 (Пн) 12:17

а через ALERT view - дык ругается, говорит ошибка в ALERT TABLe :roll:

Tof
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 09.08.2004 (Пн) 8:52
Откуда: Екатеринбург

Сообщение Tof » 01.11.2004 (Пн) 12:21

т.е. ALTER

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 01.11.2004 (Пн) 12:56

а через ALERT view - дык ругается, говорит ошибка в ALERT TABLe


Дык кто-ж знает что ты там понаписал.

У меня работало - через ADO.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Tof
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 09.08.2004 (Пн) 8:52
Откуда: Екатеринбург

Сообщение Tof » 01.11.2004 (Пн) 14:26

Чего ругаешься :?
вот что написала
База.Execute "ALTER view _запрос add column нов_колонка text(25)"

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 01.11.2004 (Пн) 14:41

Ну сделай так и не мучься:

Код: Выделить всё
    cn.Execute "CREATE VIEW MyView AS SELECT ID FROM T"
    cn.Execute "DROP VIEW MyView"
    cn.Execute "CREATE VIEW MyView AS SELECT ID, AA FROM T"
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Tof
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 09.08.2004 (Пн) 8:52
Откуда: Екатеринбург

Сообщение Tof » 01.11.2004 (Пн) 15:18

на последн. строку (где заново добавляешь поля) пишет: VIEW не может содержать параметр :(

Tof
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 09.08.2004 (Пн) 8:52
Откуда: Екатеринбург

Сообщение Tof » 01.11.2004 (Пн) 15:20

опа... спасибо большое... :D работает ведь.. он на рус. названия полей ругается

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 01.11.2004 (Пн) 15:24

он на рус. названия полей ругается


Возьми из в квадратные кавычки []
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Tof
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 09.08.2004 (Пн) 8:52
Откуда: Екатеринбург

Сообщение Tof » 01.11.2004 (Пн) 15:46

да нее.. че т я туплю.. видимо пробел забыла поставить после запятой в перечислении.. потому как с пробелом работает...
спасибо :)


Вернуться в Базы данных

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

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

    TopList