Microsoft Visual Basic 6.0. Мастерская разработчика
Автор: Джон Кларк Крейг, Джефф Уэбб
Издательство: Русская редакция
Год: 2001
Язык: Русский
Википедия https://ru.wikipedia.org/wiki/
Visual Basic 6.0 - Самоучитель для начинающих - Лукин С.Н. - 2001.
Приложения
Приложение 1: исходный тест программы
1.Forms:
frmclient
Private Sub Command1_Click()
'Вставляем новые значения
With Adodc1.Recordset
.AddNew
.Fields(1) = pName.Text
.Fields(2) = pFName.Text
.Fields(3) = pLName.Text
.Fields(4) = pAddress.Text
.Fields(5) = pPhone.Text
.Fields(6) = pCar.Text
End With
End Sub
Private Sub Command2_Click()
'редактировать запись
With Adodc1.Recordset
.Fields(1) = pName.Text
.Fields(2) = pFName.Text
.Fields(3) = pLName.Text
.Fields(4) = pAddress.Text
.Fields(5) = pPhone.Text
.Fields(6) = pCar.Text
.Update
End With
End Sub
Private Sub Command3_Click()
'удаляем значение
On Error Resume Next
Adodc1.Recordset.Delete
End Sub
Private Sub DataGrid1_Click()
With Adodc1.Recordset
pName.Text = .Fields(1)
pFName.Text = .Fields(2)
pLName.Text = .Fields(3)
pAddress.Text = .Fields(4)
pPhone.Text = .Fields(5)
pCar.Text = .Fields(6)
End With
End Sub
frmEmployee
Private Sub Command1_Click()
'Вставляем новые значения
With Adodc1.Recordset
.AddNew
.Fields(1) = pName.Text
.Fields(2) = pFName.Text
.Fields(3) = pLName.Text
.Fields(4) = pPosition.Text
End With
End Sub
Private Sub Command2_Click()
'редактировать запись
With Adodc1.Recordset
.Fields(1) = pName.Text
.Fields(2) = pFName.Text
.Fields(3) = pLName.Text
.Fields(4) = pPosition.Text
.Update
End With
End Sub
Private Sub Command3_Click()
'удаляем значение
On Error Resume Next
Adodc1.Recordset.Delete
End Sub
Private Sub DataGrid1_Click()
With Adodc1.Recordset
pName.Text = .Fields(1)
pFName.Text = .Fields(2)
pLName.Text = .Fields(3)
pPosition.Text = .Fields(4)
End With
End Sub
frmMain
Private Sub Command1_Click()
frmClient.Show
End Sub
Private Sub Command2_Click()
frmEmployee.Show
End Sub
Private Sub Command3_Click()
frmPrice.Show
End Sub
Private Sub Command4_Click()
frmReport.Show
End Sub
Private Sub Exit_Click()
'Закрыть форму при нажатии меню "Выход"
Unload Me
End Sub
frmPrice
Private Sub Command1_Click()
'Вставляем новые значения
With Adodc1.Recordset
.AddNew
.Fields(1) = pName.Text
.Fields(2) = pPrice.Text
End With
End Sub
Private Sub Command2_Click()
'редактировать запись
With Adodc1.Recordset
.Fields(1) = pName.Text
.Fields(2) = pPrice.Text
.Update
End With
End Sub
Private Sub Command3_Click()
'удаляем значение
On Error Resume Next
Adodc1.Recordset.Delete
End Sub
Private Sub DataGrid1_Click()
With Adodc1.Recordset
pName.Text = .Fields(1)
pPrice.Text = .Fields(2)
End With
End Sub
frmReport
Public dateAct As Date 'дата акта
Public clientID As Integer 'id клиента
Public employeeID As Integer 'id сотрудника
Public serviceID As Integer 'id оказанной услуги
Private Sub btnDelete_Click()
'удаляем значение
On Error Resume Next
Adodc4.Recordset.Delete
End Sub
Private Sub btnPrint_Click()
'Adodc4.Recordset.Requery
DataReport2.Show
End Sub
Private Sub btnSave_Click()
'Вставляем новые значения
If pClient <> "" Or pEmployee <> "" Then
With Adodc4.Recordset
.AddNew
.Fields(1) = pDate.Text
.Fields(2) = clientID
.Fields(3) = employeeID
.Fields(4) = serviceID
End With
Else
'MsgBox("Не заполнены поля",vbOKOnly,"Ошибка")
PushButton = MsgBox("Не заполнены поля", 0, "Ошибка")
End If
End Sub
Private Sub DataGrid1_Click()
With Adodc1.Recordset
pEmployee = .Fields(1) & " " & .Fields(2) & " " & .Fields(3)
employeeID = .Fields(0)
End With
End Sub
Private Sub DataGrid2_Click()
With Adodc2.Recordset
pClient = .Fields(1) & " " & .Fields(2) & " " & .Fields(3)
clientID = .Fields(0)
End With
End Sub
Private Sub DataGrid3_Click()
With Adodc3.Recordset
serviceID = .Fields(0)
End With
End Sub
Private Sub Form_Load()
pDate.Text = Date
dateAct = pDate.Text
End Sub
Designer:
DataEnvironment1
DataReport1
Private Sub DataReport_Initialize()
Dim query As String ' this will hold our runtime query
Dim reportID As Integer ' This will hold first date
Dim Conn As New ADODB.Connection
Dim RS As New ADODB.Recordset
Conn.CursorLocation = adUseClient
Conn.ConnectionString = DataEnvironment1.Connection1
Conn.Open
'get date values form form and store in string variables.
With frmReport
reportID = .Adodc4.Recordset.Fields(0)
End With
query = "SHAPE { "
query = query & "select * "
query = query & "from report "
query = query & "where report.id = " & reportID & " "
query = query & "} AS Command1 "
query = query & " APPEND ({select * from employee} "
query = query & "AS Command2 RELATE 'r_employee' TO 'id') "
query = query & "AS Command2,({select * from client} "
query = query & "AS Command3 RELATE 'r_client' TO 'id') "
query = query & "AS Command3,({select * from service} "
query = query & "AS Command4 RELATE 'r_service' TO 'id') "
query = query & "AS Command4"
RS.Open query, Conn, adOpenForwardOnly
Set DataReport1.DataSource = RS
'RS.Close
'Conn.Close
End Sub
DataReport2
Private Sub DataReport_Initialize()
Dim query As String ' this will hold our runtime query
Dim reportID As Integer ' This will hold first date
Dim Conn As New ADODB.Connection
Dim RS As New ADODB.Recordset
Conn.CursorLocation = adUseClient
Conn.ConnectionString = DataEnvironment1.Connection1
Conn.Open
'get date values form form and store in string variables.
With frmReport
reportID = .Adodc4.Recordset.Fields(0)
End With
'Формируем запрос
query = "select report.id, report.r_date, report.r_client, report.r_employee, report.r_service, "
query = query & "client.id, client.c_name, client.c_fname, client.c_lname, "
query = query & "employee.id, employee.e_name, employee.e_fname, employee.e_lname, employee.e_position, "
query = query & "service.id, service.s_name, service.s_price "
query = query & " from report, client, employee, service "
query = query & "where report.id = " & reportID & " and report.r_client = client.id "
query = query & "and report.r_employee = employee.id and report.r_service = service.id"
RS.Open query, Conn, adOpenForwardOnly
Set DataReport2.DataSource = RS
End Sub
