Как передать данные из одной формы в другую? - VB
Формулировка задачи:
Осваиваю Visual Basic 6.0. У меня есть форма, в которой в элементе управления 'список' представлена краткая информация о, скажем, пользователе (идентификатор и ФИО). Хочу после выбора конкретного пользователя открыть другую форму с более подробной информацией о нем. Посоветуйте, пожалуйста, как можно передать данные из одной формы в другую? Или хотя бы в каком направлении 'рыть'?
Решение задачи: «Как передать данные из одной формы в другую?»
textual
Листинг программы
' References: Microsoft DAO 3.51 Dim db As Database Const DBPath = '....db ' Private Sub Form_Load() Dim rs As Recordset Set db = OpenDatabase(DBPath & 'novelty.mdb') Set rs = db.OpenRecordset('SELECT ID, LastName, FirstName ' & _ 'FROM tblCustomer ' & _ 'WHERE ID > 18000 ' & _ 'ORDER BY LastName, FirstName') ' Заполняем список Do Until rs.EOF lstCustomer.Addltem rs.Fields('LastName') & ', ' & _ rs.Fields('FirstName') & _ ' [' & rs.Fields('ID') & ']' lstCustomer.ItemData(lstCustomer.Newlndex) = rs.Fields('ID') rs.MoveNext Loop rs.Close Set rs = Nothing End Sub Обратите внимание, что в этом коде используется свойство ItemData списка, которое позволяет добавлять дополнительные числовые данные к каждому элементу в списке. В данном случае вы добавляете в список значение поля ID - первичный ключ таблицы tblCustomer. Когда пользователь дважды щелкает на элементе списка, это значение отображается на форме, предназначенной для отображения одной записи. В листинге 3.13 приведен код, с помощью которого отображается детальная информация о клиенте. Рис. 3.7. Приложение просмотра содержимого базы данных после того, как код DAO заполнит список Private Sub lstCustomer_DblClick() Dim rs As Recordset Dim f As frmSingle Dim lnglD As Long Set f = New frmSingle lnglD = lstCustomer.ItemData(lstCustomer.Listlndex) Set rs = db.OpenRecordset('SELECT * ' & _ 'FROM tblCustomer ' & _ 'WHERE ID = ' & lnglD)' f.TextBox(0) = rs.Fields ('FirstName',) f.TextBox(l) = rs.Fields('LastName') f.TextBox(2) = rs.Fields('Address') & '' f.TextBox(3) = rs.Fields('City') & '' f.TextBox{4) = rs.Fields('State') & '' ' Отображаем дочернюю форму с формой frmMain ' в качестве родительской. f.Show vbModeless, Me rs.Close Set rs = Nothing End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д