Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обьекты в Басике и доступ к онным 
V
    Опции темы
LexRema
Дата 4.4.2006, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 15.3.2006

Репутация: нет
Всего: нет



Возможно данная тема эсть в некотором роде не нормальной... Я всегда работал на С++. Сейчас же в аксесе надо описать автоматическую работу бд с неопределенным форматом
1. Неизвестно количество таблиц
2. Неизвестно количество полей в оных
Но это потом. Сейчас же возникла просто ламерская проблема. Создавая обьект ДБ и передавая ему кьюрентДБ, мы можем наблюдать (в окне вотч) всю иерархию энтого обьекта. Как же из нее ее вытянуть, если таковое возможно. Или, если энто все не совсем через руки делаеться - как сделать через онные. smile
И сразу просьба:
если есть толковые примеры именно програмирования бд - присылайте на екаунт...
Спасибо.

PM   Вверх
Akina
Дата 5.4.2006, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454




M
Akina
Пишите грамотно, без ошибок, а также без сленга, строгим техническим языком

Перечень таблиц базы данных находится в коллекции Tabledefs.

Код

Dim db As Database
Dim i As Long

Set db = CurrentDb
Debug.Print "The list of tables in " & db.Name & ":"
For i = 0 To db.TableDefs.Count - 1
   Debug.Print db.TableDefs(i).Name
Next i
Set db = Nothing


Будет выведен полный перечень имен таблиц базы данных, включая системные (их имена начинаются на MSys).

Аналогично у каждой таблицы, описанной в TableDefs, есть коллекция, содержащая список полей.

Код

Dim db As Database
Dim td As TableDef
Dim i As Long

Set db = CurrentDb
Set td = db.TableDefs(db.TableDefs.Count - 1)
Debug.Print "The structure of table " & td.Name & ":"
For i = 0 To td.Fields.Count - 1
   Debug.Print td.Fields(i).Name, td.Fields(i).Type
Next i
Set td = Nothing
Set db = Nothing



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
LexRema
Дата 5.4.2006, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 15.3.2006

Репутация: нет
Всего: нет



Хочу сравнить два стринга - один с названием таблицы, другой с "MSys"... Ф-ии МСДН:
String.Copy()
String.Compare()
и многие другие не подходят... Как тогда с ними обращаться?
И как можна продолжить проход по циклу без выполнения операций- аналог в С++ "continue"
Код

for (int i=0;i<5;i++)
{
     if (i!=3)
           continue;//продолжение без входа в операторы
     ....(операторы)

}


PM   Вверх
Akina
Дата 5.4.2006, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(LexRema @ 5.4.2006, 17:43 Найти цитируемый пост)
Хочу сравнить два стринга - один с названием таблицы, другой с "MSys"...

Код

If SomeString = "MSys..." Then


Цитата(LexRema @ 5.4.2006, 17:43 Найти цитируемый пост)
как можна продолжить проход по циклу без выполнения операций

Нет такого оператора. Есть только прерывание выполнения обрамляющего цикла.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
LexRema
Дата 5.4.2006, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 15.3.2006

Репутация: нет
Всего: нет



Вопросы сыпятся песком... Извини, просто не могу найти толковой литературы. То что МСДН не годится меня вообще убило. С нэта накачено уже около 80 метров лит-ры... Либо сбои при разархивации , либо руководства "ткните эту кнопочку и..."

Сейчас же кинул на форму ListBox. Как же его контролить? Переменная есть... Но как все значения удалить, получить кюрент курсор и т.п.? Честно... Можете меня конечно послать... Но у меня работа стоит изза отсутствия толковой инфы smile
Добавлено @ 17:21
smile
Добавлено @ 17:24
Удалить айтем- есть возможность... А как указать все? С курсорами тоже вроде поймал идею...

PM   Вверх
LexRema
Дата 5.4.2006, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 15.3.2006

Репутация: нет
Всего: нет



Код

For I = 0 To db.TableDefs.Count - 1
        If db.TableDefs(I).Name <> "MSys..." Then
            List_IN.AddItem db.TableDefs(I).Name, 0
        End If
 Next I

Вроде все правильно ... но в контрол добавляются все поля smile
PM   Вверх
LexRema
Дата 5.4.2006, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 15.3.2006

Репутация: нет
Всего: нет



И снова я
Код

Private Sub Button_Select_Click()
    Dim ItSel As Variant
    ItSel = Me.List_IN.ListIndex
    If ItSel = -1 Then
        Debug.Print "Choose a table!"
        Exit Sub
    Else
        ...
    End If
End Sub

Debug.Print "Choose a table!" - где я это могу увидеть? и подкиньте, пожалуйста, формат MessageBox

PM   Вверх
LexRema
Дата 5.4.2006, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 15.3.2006

Репутация: нет
Всего: нет



Насколько я понял, формы могут быть изменены без их открытия( в поля добавлена инвформация и т.п.)
Form![Choosing Tables]!Table_IN.AddItem "s", 0 - что здесь не так?
Добавлено @ 19:45
И как это вообще сделать? А то выгонят - все стены головой продолбаю.
PM   Вверх
LexRema
Дата 5.4.2006, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 15.3.2006

Репутация: нет
Всего: нет



smile
PM   Вверх
Akina
Дата 6.4.2006, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Если у Вас есть Visual Studio, должна быть и MSDN. Достаточно даже July 2001.

Достаточно, впрочем, и встроенной в MS Access справки:
Главное меню Access
Справка
Справка: Microsoft Office Access
Оглавление
Microsoft Access Visual Basic Reference


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
LexRema
Дата 6.4.2006, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 15.3.2006

Репутация: нет
Всего: нет



"То что МСДН не годится меня вообще убило"

Проблема не в МСДН! То, что предлагает он, "слегка" не работает в аксесе. Вот в чем беда.
PM   Вверх
LexRema
Дата 6.4.2006, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 15.3.2006

Репутация: нет
Всего: нет



Cогласен, встроеная справка неплохая. Единственое, что повторюсь:

Код

 For I = 0 To db.TableDefs.Count - 1
        If db.TableDefs(I).Name <> "MSys..." Then
            List_IN.AddItem db.TableDefs(I).Name, 0
        End If
 Next I


Вроде все правильно ... но в контрол добавляются все поля
PM   Вверх
Akina
Дата 6.4.2006, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(LexRema @ 6.4.2006, 16:31 Найти цитируемый пост)
Вроде все правильно ... но в контрол добавляются все поля

Не "добавляются все поля", а "ты добавляешь все поля". Код-то посмотри...

Цитата(LexRema @ 6.4.2006, 15:47 Найти цитируемый пост)
Проблема не в МСДН! То, что предлагает он, "слегка" не работает в аксесе. Вот в чем беда.

А у всех работает... может не в МСДН дело?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
LexRema
Дата 6.4.2006, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 15.3.2006

Репутация: нет
Всего: нет



Цитата

А у всех работает... может не в МСДН дело?


И можна вытянуть символ из строки по индексу, и выбрать подстроку, и многое другое? Здесь же даже символьных переменных нет!

Не рву рубаху на груди, что великий специалист в басике. Его синтаксис увидел в день, когда и открыл данную тему на форуме. Так ткните меня носом, плиз, а не "код посмотри".

If db.TableDefs(I).Name <> "MSys..." Then
List_IN.AddItem db.TableDefs(I).Name, 0
End If
Насколько я привык в С, если выполняется (db.TableDefs(I).Name <> "MSys...") то действие(List_IN.AddItem db.TableDefs(I).Name, 0) происходит, иначе - нет. Как бы сделал в неурезаном Басике: Вытянул 4 первых символа строки db.TableDefs(I).Name. А здесь пользуюсь предложеным вами вариантом... Правда такого в хелпе пока не встречал. Даже если это я "добавляеш все поля", - так почему?
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0549 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.