| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB6 > Глобальные переменные в VBA |
| Автор: Vic 31.5.2004, 13:32 |
| Помогите, у кого есть время. Делаю БД в Access. Есть две формы. На них есть кнопки перехода друг на друга. Надо сделать следующее: Одна форма открыта. На ней есть поле со списком, например фамилий. Другая форма содержит описание этих фамилий. Мне надо, чтоб при открытии второй формы в ней открывалась запись, содержащая информацию именно о той, которая в открытой первой форме. Вопрос может поставлен и по-дурацки, но вроде понятно. Как я понимаю, надо использовать значение по умолчанию и какую-то глобальную переменную, но просто я с ними никогда не работала и у меня нет хорошей книжки по VBA. Так что вся надежда на Вас Vic |
| Автор: Guest 31.5.2004, 13:42 |
| Че та не очень понятно. Зачем тебе глобальная переменная? У тебя же само объект имеет "глобальное" свойство Form1.ComboBox1.Text |
| Автор: Vic 31.5.2004, 13:55 |
| Так не получается. Я пробовала. Когда в конце добавляешь Column(), тоже не получается. А на счет глобальных переменных я просто не в курсе, Я решила раз без них гне получается может надо с ними |
| Автор: boevik 31.5.2004, 14:25 |
| Глобальные переменные можно объявить в модуле. Но, IMHO, это не лучшее решение. Лучше прочитать значение на прямую с контроля или передать переменной во второй форме. |
| Автор: Vic 31.5.2004, 14:30 |
| Народ, я все понимаю, вы-то всве знаете. А я почти чайник, ТО что гллобальную переменную объявляют в модуле, я уже выяснила, меня интересует конкретно эта процедура. Напиши кто-нибудь, пожалуйства. Там же в одно действие, как я понимаю. Или нет? Если в два, можете написать только первое. Vic |
| Автор: Akina 31.5.2004, 14:49 | ||
Нерабочий текст (плюс имена форм и использованных контролов) - в студию. |
| Автор: boevik 31.5.2004, 14:51 | ||
A это не срабатывает?
|
| Автор: Vic 31.5.2004, 15:28 |
| Народ, это все очень мило. А последний код может и работает, если мне все-таки кто напишет, как объявлять глобальные переменные. |
| Автор: boevik 31.5.2004, 15:36 | ||
В модуле пишешь:
|
| Автор: Vic 31.5.2004, 16:01 |
| ОК как объявлять глобальную переменную я поняла. А куда вставлять код sLastName = Form1.ComboBox1.Text? К какому объекту его привязывать или что вообще там дальше? Vic Добавлено @ 16:06 ОК как объявлять глобальную переменную я поняла. А куда вставлять код sLastName = Form1.ComboBox1.Text? К какому объекту его привязывать или что вообще там дальше? Vic |
| Автор: Guest 31.5.2004, 16:23 | ||
На событе нажатия кнопки (Button1.Click) на первой форме или на событие появления второй формы (Form2.Load) или на событие изменения (OnChange) твоего ComboBox-а Но это все глупасти и недостойно истенного программера! ))) Говорю ж тебе у твоего контрола типа ComboBox есть свойство Text оно само по себе уже глобально пока контрол существует. При появлении второй формы тебе нужно вытащить это свойство с твоего контрола и все, ни какого описания глобаьлных переменных, создания модуля лишнего для одной переменной и т.п. |
| Автор: Vic 31.5.2004, 16:59 |
| Хорошо. Это я поняла. Задача усложняется. У меня в поле со списком присоединены два столбца. Один с кодом, а второй с названием. На экран выводится только название. А в поле второй формы мне надо вставить только код. Поэтому когда я проделываю все, что посоветовали (не используя глобальные переменные), у меня выдается ошибка формата данных или что-то вроде. Добавлено @ 17:00 вернее ошибочный тип данных содержит |
| Автор: ~FoX~ 1.6.2004, 15:25 |
| Тогда тем более глобальная переменная не нужна! Ведь у тебя целая таблица (куда уж глобальней Вот и обращайся к самой таблице (к активной записи в тадлице) |
| Автор: Vic 1.6.2004, 16:16 |
| Да как это сделать?????? Люди, я может совсем тупая, но не работает у меня процедура Form.Combo.Text |
| Автор: boevik 1.6.2004, 16:27 | ||
Ты так и писала Form.Combo.Text или писала Имя_Формы.Имя_Комбо.Text? A во вторых это не процедура, а свойство контроля combo, который находится на форме. |
| Автор: Vic 1.6.2004, 23:01 |
| Я в курсе, что у меня плохо с теорией и я не отличаю процедуры от свойства, во овсяком случае в речи, по смыслу я могу понять разницу. Естественно, я писала имя_формы.имя_комбо.Text. |
| Автор: Guest 2.6.2004, 08:06 |
| Vic Ой ё.......!!! Да не нужно тебе обращаться к компанентам никаким у тебя таблица есть - в ней есть выделенная в данный момент запись - у этой записи есть поле котрое тож выделено, вот значение этого поля тебе и надобно. Товарисчи прекратите путать девушку |
| Автор: Vic 17.6.2004, 16:18 |
| Я-таки сделала, что мне было надо. Для этого надо было всего лишь форму построить на основе запроса, а не таблицы. До меня это долго доходило Всем спасибо за помощь. Vic |