Имена таблиц из базы данных

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
[WizarD]-GoSu
Новичок
Новичок
 
Сообщения: 36
Зарегистрирован: 08.10.2006 (Вс) 15:31
Откуда: Russia

Имена таблиц из базы данных

Сообщение [WizarD]-GoSu » 25.09.2007 (Вт) 22:04

Подскажите пожалуйста как в коде получить имена всех таблиц из БД Access открытой при помощи Adodc. Допустим открываем произвольную базу и надо знать какие таблицы там есть, чтобы в строчке

Код: Выделить всё
ShoeBase.RecordSource = "Select * From shoedb"


не задавать явно таблицу, а скажем выбирать её из списка. :)
Реализовать желательно средствами самого контрола. :?

Код: Выделить всё
Private Sub Form_Load()
    ShoeBase.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;DataSource=E:\PSTU\Áàçûäàííûõ\ShoeBD\base\shoedb.mdb;Mode=ReadWrite|Share Deny None;Persist Security Info=False"
    ShoeBase.RecordSource = "Select * From shoedb"
    ShoeBase.Refresh
    Set ShoeTable.DataSource = ShoeBase
    ShoeTable.ReBind
End Sub

shady
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 09.11.2005 (Ср) 11:03

Сообщение shady » 26.09.2007 (Ср) 7:41

Код: Выделить всё
SELECT MSysObjects.Id, MSysObjects.[Name]
FROM MSysObjects
WHERE (((MSysObjects.Type)=1) AND (Left([Name],4))<>"MSys" And (Left([Name],4))<>"USys")

[WizarD]-GoSu
Новичок
Новичок
 
Сообщения: 36
Зарегистрирован: 08.10.2006 (Вс) 15:31
Откуда: Russia

Сообщение [WizarD]-GoSu » 26.09.2007 (Ср) 17:34

Спасибо за помощь! :D

[WizarD]-GoSu
Новичок
Новичок
 
Сообщения: 36
Зарегистрирован: 08.10.2006 (Вс) 15:31
Откуда: Russia

Сообщение [WizarD]-GoSu » 07.10.2007 (Вс) 20:53

После того как впечатал этот запрос пишет:

Код: Выделить всё
Записи не могут быть прочитаны; отсутствует разрешение на чтение данных для MSysObjects


Mode задал на чтение и запись, подключаюсь как админ вроде :roll:

[WizarD]-GoSu
Новичок
Новичок
 
Сообщения: 36
Зарегистрирован: 08.10.2006 (Вс) 15:31
Откуда: Russia

Сообщение [WizarD]-GoSu » 07.10.2007 (Вс) 21:37

Полазив в настройках Access нашёл ответ на свой вопрос!!! :D
Надо сделать следущее:

Открываем в Access меню Сервис->Вид и на вкладке Вид , ставим галочку Системные объекты . Теперь мы видим системные таблицы.

Далее в Сервис->Защита->Разрешения находим таблицу MSysObjects и ставим необходимые разрешения! :)

Теперь всё работает! 8)

[WizarD]-GoSu
Новичок
Новичок
 
Сообщения: 36
Зарегистрирован: 08.10.2006 (Вс) 15:31
Откуда: Russia

Сообщение [WizarD]-GoSu » 08.10.2007 (Пн) 22:57

У меня вопрос если имя таблицы содержит пробелы, как правильно запрос построить?

Код: Выделить всё
Select * From Big Table


Такой код не катит естественно :?

Gloom
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 200
Зарегистрирован: 23.11.2004 (Вт) 15:57
Откуда: СПб

Сообщение Gloom » 08.10.2007 (Пн) 23:50

[WizarD]-GoSu писал(а):У меня вопрос если имя таблицы содержит пробелы, как правильно запрос построить?

Код: Выделить всё
Select * From Big Table


Такой код не катит естественно :?

Код: Выделить всё
Select * From [Big Table]

[WizarD]-GoSu
Новичок
Новичок
 
Сообщения: 36
Зарегистрирован: 08.10.2006 (Вс) 15:31
Откуда: Russia

Сообщение [WizarD]-GoSu » 09.10.2007 (Вт) 5:42

Спасибо Gloom :D !

[WizarD]-GoSu
Новичок
Новичок
 
Сообщения: 36
Зарегистрирован: 08.10.2006 (Вс) 15:31
Откуда: Russia

Сообщение [WizarD]-GoSu » 18.10.2007 (Чт) 1:09

Появилась проблема опять связанная со знанием синтаксиса SQL :? Помогите плиз!

Делаю следующий запрос:

Код: Выделить всё
adoBase.RecordSource = "SELECT Сырье.id, Сырье.[Вид материала], [Расход сырья].Количество, Сырье.Количество, [Расход сырья].Примечание FROM [Расход сырья] INNER JOIN Сырье ON [Расход сырья].[Номер сырья]=Сырье.id Where [Расход сырья].Дата>='" & Format(Calen1.Value, "yyyy.mm.dd") & "' And [Расход сырья].Дата<='" & Format(Calen2.Value, "yyyy.mm.dd") & "' GROUP BY  Сырье.[Вид материала], Сырье.id, [Расход сырья].Количество, Сырье.Количество, [Расход сырья].Примечание"


Получаю:

Код: Выделить всё
Кожа (голуб)   20   50   Цех 5
Кожа (голуб)   50   50   Цех 3
Кожа (черн)   5   110   Цех 5
Кожа (черн)   10   110   Цех 4
Резина   10   225   Цех 3

Как мне объединить одинаковые строки Наименование и при этом найти сумму строк Расход сырья.Количество? :shock:

Например объединяем Кожа (черн) и Кожа (черн) получаем:

Кожа (голуб) 70 50

HandKot
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 28.06.2006 (Ср) 13:34
Откуда: Sergiev Posad

Сообщение HandKot » 18.10.2007 (Чт) 8:04

попробуйте
Код: Выделить всё
SELECT
   Сырье.id,
   Сырье.[Вид материала],
   SUM([Расход сырья].Количество),
   Сырье.Количество,
   [Расход сырья].Примечание
FROM
   [Расход сырья]
INNER JOIN Сырье ON [Расход сырья].[Номер сырья]=Сырье.id
Where
   [Расход сырья].Дата>='" & Format(Calen1.Value, "yyyy.mm.dd") & "'
   And [Расход сырья].Дата<='" & Format(Calen2.Value, "yyyy.mm.dd") & "'
GROUP BY 
   Сырье.[Вид материала],
   Сырье.id,
   Сырье.Количество,
   [Расход сырья].Примечание"
I Have Nine Lives You Have One Only
THINK!

[WizarD]-GoSu
Новичок
Новичок
 
Сообщения: 36
Зарегистрирован: 08.10.2006 (Вс) 15:31
Откуда: Russia

Сообщение [WizarD]-GoSu » 18.10.2007 (Чт) 10:08

Осталось всё тоже самое после запроса только имя столбца [Расход сырья].Количество сменилось на Expr1002 :shock:

shady
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 09.11.2005 (Ср) 11:03

Сообщение shady » 19.10.2007 (Пт) 12:23

[WizarD]-GoSu
У Вас же написано:
Код: Выделить всё
Кожа (голуб)   20   50   Цех 5
Кожа (голуб)   50   50   Цех 3

Цех 5 и Цех 3 - как же вы хотите сгруппировать?
Осталось всё тоже самое после запроса только имя столбца [Расход сырья].Количество сменилось на Expr1002

Напишите SUM([Расход сырья].Количество) AS SumKol или что там Вам надо... и не будет Expr1002

[WizarD]-GoSu
Новичок
Новичок
 
Сообщения: 36
Зарегистрирован: 08.10.2006 (Вс) 15:31
Откуда: Russia

Сообщение [WizarD]-GoSu » 19.10.2007 (Пт) 17:57

Большое спасибо! Всё робит! :lol:


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 215

    TopList  
cron