⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmusermap.frm

📁 一个功能比较完善的远程抄表软件
💻 FRM
📖 第 1 页 / 共 2 页
字号:
        rcBuild_userset.Update
    End If
    
    If Not datUserMap.Recordset.EOF Then
        datUserMap.Recordset.MoveLast
        lblBuildUserSum.Caption = datUserMap.Recordset.RecordCount
    Else
        lblBuildUserSum.Caption = "0"
    End If
End Sub


Private Sub cmdCancel_Click()
    'Workspace.Rollback 取消事务,取消修改的内容
    dbCbb.Rollback
    Unload Me
End Sub


Private Sub cmdDevSet_Click()
    If Trim(datUserMap.RecordSource) = "" Then
        Exit Sub
    End If
    frmUserDev0.Show
End Sub


Private Sub cmdOK_Click()
    datUserMap.Recordset.FindFirst "isnull(UserID) or isnull(UserName) or isnull(BuildID) or isnull(Unit) or isnull(Floor) or isnull(Door) or isnull(Tel) "
    Do While Not datUserMap.Recordset.NoMatch
        datUserMap.Recordset.Delete
        If datUserMap.Recordset.EOF Or datUserMap.Recordset.AbsolutePosition = -1 Then
            If datUserMap.Recordset.RecordCount > 0 Then
                datUserMap.Recordset.MoveFirst
            Else
                Exit Do
            End If
        End If
        datUserMap.Recordset.FindNext "isnull(UserID) or isnull(UserName) or isnull(BuildID) or isnull(Unit) or isnull(Floor) or isnull(Door) or isnull(Tel) "
    Loop
    
    dbCbb.CommitTrans
'status
    AppendStatusInfo "修改用户设置", icoBLUE
    SaveLog "修改用户设置", 0
    Unload frmUserMap
End Sub


Private Sub datUserMap_Reposition()
Dim curUserID As Integer
Dim curUserName As String
    If datUserMap.Recordset.EOF Or datUserMap.Recordset.RecordCount <= 0 Then
        Exit Sub
    End If

    If IsNull(datUserMap.Recordset!UserID) Then
        curUserID = 0
    Else
        If datUserMap.Recordset.EOF Then
            Exit Sub
        End If
        curUserID = datUserMap.Recordset!UserID
    End If
    If IsNull(datUserMap.Recordset!userName) Then
        curUserName = ""
    Else
        curUserName = datUserMap.Recordset!userName
    End If
    datUserMap.Caption = "当前用户:  " + Format(curUserID) + "," + curUserName
End Sub

Private Sub Form_Load()

    If UBound(curForm) > 0 Then
        curForm(UBound(curForm)).Enabled = False
    End If
    ReDim Preserve curForm(UBound(curForm) + 1)
    Set curForm(UBound(curForm)) = Me
    
    datUserMap.DatabaseName = App.Path & "\data\cbb.mdb"
'status
    AppendStatusInfo "查看用户设置", icoBLUE
    SaveLog "查看用户设置", 0
    
    lblAddr = Format(LUser) + "---" + Format(UUser)
Dim rcUserMap As Recordset

    Set rcBuildMap = dbCbb.OpenRecordset("buildmap", dbOpenTable)
    Set rcUserMap = dbCbb.OpenRecordset("usermap", dbOpenSnapshot)
    If Not rcUserMap.EOF Then
        rcUserMap.MoveLast
        lblNetUserSum.Caption = rcUserMap.RecordCount
    Else
        lblNetUserSum.Caption = "0"
    End If
    Set rcUserMap = Nothing
    
    datUserMap.RecordSource = ""
    Set datUserMap.Recordset = Nothing
    datUserMap.Refresh
    '开始事务
    dbCbb.BeginTrans
    
    SQL = "select userID,userName,Unit,Floor,Door,Tel,BuildID "
    SQL = SQL + "from userMap "
    SQL = SQL + "where FALSE "
    datUserMap.RecordSource = SQL
    datUserMap.Refresh
    
    fillBuild
    
    f_frmUserMap_Visible = True
    DoEvents
    'frmMain.stbMain.Panels(1).Text = "如设总表,用户号或总表号栏请填连续序号,用户名或总表栏必须填“总表”,其它栏如没有填“\”。"
End Sub

Private Sub Form_Unload(Cancel As Integer)
    ReDim Preserve curForm(UBound(curForm) - 1)
    If UBound(curForm) > 0 Then
        curForm(UBound(curForm)).Enabled = True
    End If
    
    f_frmUserMap_Visible = False
End Sub


Private Sub grdUserMap_BeforeColUpdate(ByVal ColIndex As Integer, OldValue As Variant, Cancel As Integer)
Dim rcChkUser As Recordset
Dim curUserID As Integer
Dim curBuildID As String

    Set rcChkUser = dbCbb.OpenRecordset("UserMap", dbOpenSnapshot)

    Select Case ColIndex
        Case 0      '检查用户号的有效性
            If Not IsNumeric(grdUserMap.Columns(0).Value) Then
                MsgBox "用户号必须为整数" + Chr(10) + "请重新选择用户号", 48, "用户设置"
                Cancel = True
                GoTo EndUpdate
            End If
            curUserID = grdUserMap.Columns(0).Value
            rcChkUser.FindFirst "UserID=" + Format(curUserID)
            If Not rcChkUser.NoMatch Then
                MsgBox "该用户号已经被占用" + Chr(10) + "请重新选择用户号", 48, "用户设置"
                Cancel = True
            End If
        Case 1      '检查用户名有效性
            If Len(grdUserMap.Columns(1).Value) > 20 Then
                MsgBox "用户名不能超过20个字符", 48, "用户设置"
                Cancel = True
                GoTo EndUpdate
            End If
        Case 2      '检查所属楼号的有效性
            'Dim curBuildID As String
            Dim rcChkBuild As Recordset
            
                If Len(Trim(grdUserMap.Columns(2).Value)) > 20 Then
                    MsgBox "楼号不能超过20个字符", 48, "用户设置"
                    Cancel = True
                    GoTo EndUpdate
                End If
                curBuildID = Trim(grdUserMap.Columns(2).Value)  '得到当前行的"公寓号"
                Set rcChkBuild = dbCbb.OpenRecordset("BuildMap", dbOpenSnapshot)
                rcChkBuild.FindFirst "BuildID=""" + curBuildID + """"
                If rcChkBuild.NoMatch Then
                    MsgBox "无效的楼号", 48, "用户设置"
                    Cancel = True
                End If
        Case 3      '检查单元号有效性
            If Len(grdUserMap.Columns(3).Value) > 1 Then
                MsgBox "单元号不能超过1个字符", 48, "用户设置"
                Cancel = True
                GoTo EndUpdate
            End If
        Case 4      '检查楼层号有效性
            If Len(grdUserMap.Columns(4).Value) > 3 Then
                MsgBox "楼层号不能超过3个字符", 48, "用户设置"
                Cancel = True
                GoTo EndUpdate
            End If
        Case 5      '检查门牌号码有效性
            If Len(grdUserMap.Columns(5).Value) > 5 Then
                MsgBox "门牌号不能超过5个字符", 48, "用户设置"
                Cancel = True
                GoTo EndUpdate
            End If
        Case 6      '检查电话号码有效性
            If Len(grdUserMap.Columns(6).Value) > 20 Then
                MsgBox "电话号码不能超过20个字符", 48, "用户设置"
                Cancel = True
                GoTo EndUpdate
            End If
'        Case 8      '检查网络地址有效性
'            Dim curAdd As Integer
'            'Dim curBuildID As String
'
'            If Not IsNumeric(grdUserMap.Columns(8).Value) And Trim(grdUserMap.Columns(8).Value) <> "" Then
'                MsgBox "用户地址必须为整数" + Chr(10) + "请重新选择用户地址", 48, "用户设置"
'                Cancel = True
'                GoTo EndUpdate
'            End If
'
'            If grdUserMap.Columns(8).Value = "" Then
'                curAdd = 0
'            Else
'                curAdd = Val(grdUserMap.Columns(8).Value)
'            End If
'
'            If (curAdd < LUser Or curAdd > UUser) And curAdd <> 0 Then
'                MsgBox "无效的用户地址", 48, "用户设置"
'                Cancel = True
'            End If
'            curBuildID = Trim(grdUserMap.Columns(2).Value)
'            rcChkUser.FindFirst "Address=" + Format(curAdd) + " And Trim(BuildID) = """ + curBuildID + """"
'            If Not rcChkUser.NoMatch Then
'                If rcChkUser!Address <> 0 Then
'                    MsgBox "该用户地址已经被占用" + Chr(10) + "请重新选择地址", 48, "用户设置"
'                    Cancel = True
'                End If
'            End If
    End Select
EndUpdate:
End Sub


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -