Значения не будут отображаться в ярлыках при изменении значения данных ComboBox - PullRequest
2 голосов
/ 25 марта 2019

Я работаю над этой системой начисления заработной платы для компании, но каким-то образом всякий раз, когда я меняю идентификатор сотрудника в ComboBox, он не будет отображать информацию о сотруднике на ярлыках.

Я попытался изменить синтаксис запроса, но ничего не получилось

Dim cbo_id As New CAutoCompleteComboBox
Dim rs As New ADODB.Recordset

Private Sub cboEmpID_Change()

  On Error GoTo err:

  If Me.cboEmpID.Text = vbNullString Then Exit Sub

  If rs.State = adStateOpen Then rs.Close

  rs.Open "Select * from tblEmp where EM_ID = ' & cboEmpID.Text & '", cn, adOpenKeyset, adLockPessimistic

  Do While rs.EOF = True
    Me.lblName.Caption = " " & rs.Fields("NAME").Value
    Me.lblDept.Caption = " " & rs.Fields("DEPT").Value
    Me.lblPosition.Caption = " " & rs.Fields("POSITION").Value
    Me.lblRate.Caption = FormatNumber(CCur(rs.Fields("Basic_Rate").Value), 2)
    Me.lblStatus.Caption = " " & rs.Fields("Emp_Stat").Value
    Me.lblPerDay.Caption = FormatNumber(CCur(Me.lblRate.Caption / 30), 2)
    Me.lblNetPay.Caption = FormatNumber(CCur(Me.lblRate.Caption), 2)
    rs.MoveNext
  Loop

Exit Sub

err:
    MsgBox err.Description, vbCritical, "Error"
    Set rs = Nothing
End Sub

1 Ответ

0 голосов
/ 25 марта 2019

Глядя на ваш код, я думаю, что вы ожидаете только одну строку данных от вашего запроса, поэтому просто введите If, чтобы проверить, что строка была возвращена. У меня больше нет VB6, но этот код должен работать:

Private Sub cboEmpID_Change()
  On Error GoTo err:
  If Me.cboEmpID.Text = vbNullString Then Exit Sub

  If rs.State = adStateOpen Then rs.Close

  rs.Open "Select * from tblEmp where EM_ID = ' & cboEmpID.Text & '", cn, adOpenKeyset, adLockPessimistic

  If rs.EOF = False Then
        Me.lblName.Caption = " " & rs.Fields("NAME").Value
        Me.lblDept.Caption = " " & rs.Fields("DEPT").Value
        Me.lblPosition.Caption = " " & rs.Fields("POSITION").Value
        Me.lblRate.Caption = FormatNumber(CCur(rs.Fields("Basic_Rate").Value), 2)
        Me.lblStatus.Caption = " " & rs.Fields("Emp_Stat").Value
        Me.lblPerDay.Caption = FormatNumber(CCur(Me.lblRate.Caption / 30), 2)
        Me.lblNetPay.Caption = FormatNumber(CCur(Me.lblRate.Caption), 2)
  End If

Exit Sub

err:
    MsgBox err.Description, vbCritical, "Error"
    Set rs = Nothing
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...