Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Access и всплывающие формы Добавлено: 22.10.08 20:44  

Автор вопроса:  APS | ICQ: 234458121 
Давное не работал с Access, поэтому с ходу не могу разобраться.
Смысл в следующем: в форме при нажатии на кнопку должна открываться всплывающая форма, в которой необходимо ввести кол-во. Это число, в свою очередь, должно попасть в первую форму в необходимое поле.
При нажатии на кнопку выполняется код:
Private Sub Add_Click()
    DoCmd.OpenForm "Quantity" 'Открываем всплывающую форму
    DoCmd.RunSQL ("INSERT INTO [Order] ( Item, Item_2, Name, Price, Quantity ) SELECT [Price].[Item], [Price].[Item_2], [Price].[Name], [Price].[Price], [Quantity].[qty] FROM Price WHERE ((([Price].[Item])=[Forms]![Price]![Item])) ORDER BY Item;")
    Order.Requery
End Sub


При нажатии кнопки "ОК" во всплывающей форме выполняется код:
Sub OK_btn_Click()
On Error GoTo Err_OK_btn_Click

    DoCmd.Close

Exit_OK_btn_Click:
    Exit Sub

Err_OK_btn_Click:
    MsgBox Err.Description
    Resume Exit_OK_btn_Click
    
End Sub


Подскажите, как правильно передать значение из поля всплывающей формы в основную форму?

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 Nytrogen



Вопросов: 18
Ответов: 186
 Профиль | | #1 Добавлено: 22.10.08 23:17
Меня вот тоже этот вопрос волнует. Пока я нашёл для себя только один выход: создаём глобальную переменную, присваиваем ей значение из всплывающей формы, а в основной - считываем.
А ведь скорее напрашивается такой выход:
myVar = getMyVar(); 'некая функция открывает форму с предложением ввести значение на подобии InputBox

Ответить

Номер ответа: 2
Автор ответа:
 APS



ICQ: 234458121 

Вопросов: 38
Ответов: 107
 Профиль | | #2 Добавлено: 22.10.08 23:29
Если изменить код вот на такой (обрати внимание на жирный шрифт):
  1.  
  2. Private Sub Add_Click()
  3.     DoCmd.OpenForm "Quantity" 'Открываем всплывающую форму
  4.     DoCmd.RunSQL ("INSERT INTO [Order] ( Item, Item_2, Name, Price, Quantity ) SELECT [Price].[Item], [Price].[Item_2], [Price].[Name], [Price].[Price], <b>Quantity</b> FROM Price WHERE ((([Price].[Item])=[Forms]![Price]![Item])) ORDER BY Item;")
  5.     Order.Requery
  6. End Sub
,
то выскакивает окно, наподобие Input, но нельзя:
1. Сделать его примемлемого вида и размера
2. Задать значение по умолчанию
А меня это сильно коробит.

Ответить

Номер ответа: 3
Автор ответа:
 Nytrogen



Вопросов: 18
Ответов: 186
 Профиль | | #3 Добавлено: 22.10.08 23:36
Сори, я просто в Access не парю =). Ну чем не подойдёт через переменную? И по умолчанию можно задать значение, и перекинуть.

Ответить

Номер ответа: 4
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #4
Добавлено: 23.10.08 12:46
Просто через глобальную переменную, не мучайся с этим долго.

Ответить

Номер ответа: 5
Автор ответа:
 APS



ICQ: 234458121 

Вопросов: 38
Ответов: 107
 Профиль | | #5 Добавлено: 29.10.08 12:15
Не пойму как в Access задать глобальную переменную. В Excel без проблем, а здесь туплю.
Если задаю переменную в коде всплывающего окна, то в основной форме эта переменная не видна.

Ответить

Номер ответа: 6
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #6
Добавлено: 30.10.08 15:35
Создаешь программный модуль, в нем объявляешь Public X As ...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам