Как передать данные из одной формы в другую? - 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы