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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Глобальные переменные в VBA 
:(
    Опции темы
Vic
Дата 31.5.2004, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Помогите, у кого есть время.
Делаю БД в Access. Есть две формы. На них есть кнопки перехода друг на друга. Надо сделать следующее: Одна форма открыта. На ней есть поле со списком, например фамилий. Другая форма содержит описание этих фамилий. Мне надо, чтоб при открытии второй формы в ней открывалась запись, содержащая информацию именно о той, которая в открытой первой форме.
Вопрос может поставлен и по-дурацки, но вроде понятно.
Как я понимаю, надо использовать значение по умолчанию и какую-то глобальную переменную, но просто я с ними никогда не работала и у меня нет хорошей книжки по VBA. Так что вся надежда на Вас
smile.gif
Vic
PM MAIL   Вверх
Guest
Дата 31.5.2004, 13:42 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Че та не очень понятно.
Зачем тебе глобальная переменная? У тебя же само объект имеет "глобальное" свойство Form1.ComboBox1.Text
  Вверх
Vic
Дата 31.5.2004, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Так не получается. Я пробовала.
Когда в конце добавляешь Column(), тоже не получается. А на счет глобальных переменных я просто не в курсе,
Я решила раз без них гне получается может надо с ними
PM MAIL   Вверх
boevik
Дата 31.5.2004, 14:25 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Глобальные переменные можно объявить в модуле.
Но, IMHO, это не лучшее решение.
Лучше прочитать значение на прямую с контроля или передать переменной во второй форме.
  Вверх
Vic
Дата 31.5.2004, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Народ, я все понимаю, вы-то всве знаете. А я почти чайник, ТО что гллобальную переменную объявляют в модуле, я уже выяснила, меня интересует конкретно эта процедура. Напиши кто-нибудь, пожалуйства. Там же в одно действие, как я понимаю. Или нет? Если в два, можете написать только первое.
Vic wink.gif
PM MAIL   Вверх
Akina
Дата 31.5.2004, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата
Так не получается. Я пробовала.

Нерабочий текст (плюс имена форм и использованных контролов) - в студию.


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

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


Unregistered











A это не срабатывает?

Код

sLastName = Form1.ComboBox1.Text

  Вверх
Vic
Дата 31.5.2004, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Народ, это все очень мило. А последний код может и работает, если мне все-таки кто напишет, как объявлять глобальные переменные.
PM MAIL   Вверх
boevik
Дата 31.5.2004, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

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



В модуле пишешь:
Код

Public sLastName as String



--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
Vic
Дата 31.5.2004, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



ОК как объявлять глобальную переменную я поняла. А куда вставлять код sLastName = Form1.ComboBox1.Text? К какому объекту его привязывать или что вообще там дальше?
Vic
Добавлено @ 16:06
ОК как объявлять глобальную переменную я поняла. А куда вставлять код sLastName = Form1.ComboBox1.Text? К какому объекту его привязывать или что вообще там дальше?
Vic
PM MAIL   Вверх
Guest
Дата 31.5.2004, 16:23 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата

А куда вставлять код sLastName = Form1.ComboBox1.Text?


На событе нажатия кнопки (Button1.Click) на первой форме или на событие появления второй формы (Form2.Load) или на событие изменения (OnChange) твоего ComboBox-а
Но это все глупасти и недостойно истенного программера! )))
Говорю ж тебе у твоего контрола типа ComboBox есть свойство Text оно само по себе уже глобально пока контрол существует.
При появлении второй формы тебе нужно вытащить это свойство с твоего контрола и все, ни какого описания глобаьлных переменных, создания модуля лишнего для одной переменной и т.п.

  Вверх
Vic
Дата 31.5.2004, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Хорошо. Это я поняла. Задача усложняется.
У меня в поле со списком присоединены два столбца. Один с кодом, а второй с названием. На экран выводится только название. А в поле второй формы мне надо вставить только код. Поэтому когда я проделываю все, что посоветовали (не используя глобальные переменные), у меня выдается ошибка формата данных или что-то вроде.


Добавлено @ 17:00
вернее ошибочный тип данных содержит
PM MAIL   Вверх
~FoX~
Дата 1.6.2004, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

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



Тогда тем более глобальная переменная не нужна!
Ведь у тебя целая таблица (куда уж глобальней tounge.gif )
Вот и обращайся к самой таблице (к активной записи в тадлице)


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Vic
Дата 1.6.2004, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Да как это сделать?????? Люди, я может совсем тупая, но не работает у меня процедура Form.Combo.Text
PM MAIL   Вверх
boevik
Дата 1.6.2004, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

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



Цитата
Люди, я может совсем тупая, но не работает у меня процедура Form.Combo.Text

Ты так и писала Form.Combo.Text или писала Имя_Формы.Имя_Комбо.Text?
A во вторых это не процедура, а свойство контроля combo, который находится на форме.


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
Vic
Дата 1.6.2004, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

PM MAIL   Вверх
Guest
Дата 2.6.2004, 08:06 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Vic
Ой ё.......!!!
Да не нужно тебе обращаться к компанентам никаким у тебя таблица есть - в ней есть выделенная в данный момент запись - у этой записи есть поле котрое тож выделено, вот значение этого поля тебе и надобно.

Товарисчи прекратите путать девушку

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


Новичок



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

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



Я-таки сделала, что мне было надо. Для этого надо было всего лишь форму построить на основе запроса, а не таблицы. До меня это долго доходило smile.gif
Всем спасибо за помощь.
Vic
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

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

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

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

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


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

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


 




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


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

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