知識點匯總。


Private Sub Combo18_AfterUpdate()

Call 車損
Call 乘客保
Call 駕駛人保
End Sub

解析:Combo18該控制項更新後,執行車損、乘客保、駕駛人保方法。


 

Private Sub 車損()
車損基礎保費.Value = CurrentDb.OpenRecordset(“SELECT 基礎保費 FROM 機動車損失保險 WHERE 車型='” & Combo10.Value & “‘ and 座位='” & Combo12.Value & “‘ and 車齡='” & Combo18.Value & “‘”)![基礎保費]
車損費率.Value = CurrentDb.OpenRecordset(“SELECT 費率 FROM 機動車損失保險 WHERE 車型='” & Combo10.Value & “‘ and 座位='” & Combo12.Value & “‘ and 車齡='” & Combo18.Value & “‘”)![費率]
End Sub

解析:查詢對應的數據,然後特定的值到控制項上(更新車損基礎保費)。參數格式: & Combo10.Value & ,該參數是Combo10的控制項的值。


 

Private Sub 車損基礎保費_AfterUpdate()
車損標準保費.Value = Nz(車損基礎保費.Value, 0) + Nz(車損保險金額.Value, 0) * Nz(車損費率.Value, 0)
End Sub

解析:車損基礎保費該控制項更新後,執行這個模組


 出現錯誤:編譯錯誤:類型不匹配。

 

 初步判定是 i 這個變數上面  Dim定義了類型不對。

解決方法:①將 Dim i  As Long 刪去。②查看正確類型,並進行更改。

此處方法一無效,用方法二,修改後成功運行。

 

下面這個案例用方法一有效:(注釋了)

 


 

 登錄模組的VBA:

Private Sub 命令1_Click()
On Error GoTo Err_命令48_Click

  If IsNull(Trim(Me![編號])) Or IsNull(Trim(Me![密碼])) Then
    MsgBox "用戶編號和密碼不能為空,請重新輸入!", vbOKOnly, "警告資訊"
    Me.編號.SetFocus
  Else
  '  With CodeContextObject
    '  rrr = "[操作員]![編號]='" & Trim(Me![編號]) & _
    '  "'And [操作員]![密碼] = '" & Trim(Me![密碼]) & "'"
    '  DoCmd.ApplyFilter , rrr
      
      
      
      
      ' 獲取用戶名和密碼
Dim y, m, rs As Recordset ' 定義y表示用戶名,m表示密碼
y = Me.編號.Value 'Me.編號——登錄介面中控制項名為 編號 的框。
m = Me.密碼.Value
Me.RecordSource = "select * from 操作員 where 編號='" & y & "' and 密碼='" & m & "'"  '從操作員表中查詢符合條件的相關數據
Set rs = Me.Recordset
If rs.RecordCount > 0 Then '查詢到了就 rs就為查詢的條數,若沒查到則為-1
公用資訊登錄名 = y
DoCmd.Close    '該登錄窗口關閉
DoCmd.OpenForm "教師資訊表" '打開 教師資訊表

   '   If (.RecordsetClone.RecordCount > 0) Then
   '   DoCmd.SetWarnings False
   '     DoCmd.RunSQL "UPDATE 操作員 SET 運行狀態 = no" & _
   '                  " WHERE 編號 <> '" & Me.編號 & "'"
   '     DoCmd.RunSQL "UPDATE 操作員 SET 運行狀態 = yes" & _
   '                  " WHERE 編號 = '" & Me.編號 & "'"
   '     DoCmd.Close
        
        'DoCmd.OpenForm "系統介面", acNormal, "", "", acReadOnly, acWindowNormal
                                 
      Else
        MsgBox "您輸入的用戶名或密碼有誤,請重新輸入!", vbOKOnly, "警告資訊" '彈出相關資訊
        Me.密碼 = Null  '密碼框清空
        Me.密碼.SetFocus '焦點設為密碼框
      End If
   ' End With
  End If

Exit_命令48_Click:
    Exit Sub

Err_命令48_Click:
    MsgBox Err.Description
    Resume Exit_命令48_Click
End Sub