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

📄 validations.bas

📁 This a complete inventory management system that performs the functions of Purchases, Sales and paym
💻 BAS
字号:
Attribute VB_Name = "Validations"
Public Function IsValidEmailAddress(AddressString As String) As Boolean

Dim sHost As String
Dim iPos As Integer
Dim sInvalidChars As String

If Len(Trim(AddressString)) = 0 Then
    IsValidEmailAddress = False
    Exit Function
End If

sInvalidChars = "!#$%^&*()=+{}[]|\;:'/?>,< "

    For iPos = 1 To Len(AddressString)
        If InStr(sInvalidChars, _
            Mid(AddressString, iPos, 1)) > 0 Then
            
            IsValidEmailAddress = False
            Exit Function
        End If
    Next


iPos = InStr(AddressString, "@")

If iPos = 0 Or Left(AddressString, 1) = "@" Then
    IsValidEmailAddress = False
    Exit Function
End If

sHost = Mid(AddressString, iPos + 1)
'can't have multiple "@" chars in the string
If InStr(sHost, "@") > 0 Then
    IsValidEmailAddress = False
    Exit Function
End If

IsValidEmailAddress = IsValidIPHost(UCase(sHost))


End Function
Public Function IsValidIPHost(HostString As String) As Boolean

Dim sHost As String
Dim bDottedQuad As Boolean
Dim sSplit() As String
Dim ictr As Integer
Dim bAns As Boolean
Dim sTopLevelDomains() As String

sHost = HostString

If InStr(sHost, ".") = 0 Then
    IsValidIPHost = False
    Exit Function
End If

sSplit = Split(sHost, ".")

If UBound(sSplit) = 3 Then
    bDottedQuad = True
    For ictr = 0 To 3
        If Not IsNumeric(sSplit(ictr)) Then
            bDottedQuad = False
            Exit For
        End If
    Next
    
    If bDottedQuad Then
        bAns = True
        For ictr = 0 To 3
            If ictr = 0 Then
            bAns = Val(sSplit(ictr)) <= 239
                If bAns = False Then Exit For
            Else
                bAns = Val(sSplit(ictr)) <= 255
                If bAns = False Then Exit For
            End If
        Next
        
        IsValidIPHost = bAns

        
        Exit Function
    End If
End If 'ubound(ssplit) = 3

    IsValidIPHost = isTopLevelDomain(sSplit(UBound(sSplit)))


End Function

Public Function isTopLevelDomain(DomainString As String) As Boolean
Dim asTopLevels() As String
Dim ictr As Integer
Dim iNumDomains As Integer
Dim bAns As Boolean

iNumDomains = 251
ReDim asTopLevels(iNumDomains - 1) As String


'Obtained from www.IANA.com.  Can and will change
asTopLevels(0) = "COM"
asTopLevels(1) = "ORG"
asTopLevels(2) = "NET"
asTopLevels(3) = "EDU"
asTopLevels(4) = "GOV"
asTopLevels(5) = "MIL"
asTopLevels(6) = "INT"
asTopLevels(7) = "AF"
asTopLevels(8) = "AL"
asTopLevels(9) = "DZ"
asTopLevels(10) = "AS"
asTopLevels(11) = "AD"
asTopLevels(12) = "AO"
asTopLevels(13) = "AI"
asTopLevels(14) = "AQ"
asTopLevels(15) = "AG"
asTopLevels(16) = "AR"
asTopLevels(17) = "AM"
asTopLevels(18) = "AW"
asTopLevels(19) = "AC"
asTopLevels(20) = "AU"
asTopLevels(21) = "AT"
asTopLevels(22) = "AZ"
asTopLevels(23) = "BS"
asTopLevels(24) = "BH"
asTopLevels(25) = "BD"
asTopLevels(26) = "BB"
asTopLevels(27) = "BY"
asTopLevels(28) = "BZ"
asTopLevels(29) = "BT"
asTopLevels(30) = "BJ"
asTopLevels(31) = "BE"
asTopLevels(32) = "BM"
asTopLevels(33) = "BO"
asTopLevels(34) = "BA"
asTopLevels(35) = "BW"
asTopLevels(36) = "BV"
asTopLevels(37) = "BR"
asTopLevels(38) = "IO"
asTopLevels(39) = "BN"
asTopLevels(40) = "BG"
asTopLevels(41) = "BF"
asTopLevels(42) = "BI"
asTopLevels(43) = "KH"
asTopLevels(44) = "CM"
asTopLevels(45) = "CA"
asTopLevels(46) = "CV"
asTopLevels(47) = "KY"
asTopLevels(48) = "CF"
asTopLevels(49) = "TD"
asTopLevels(50) = "CL"
asTopLevels(51) = "CN"
asTopLevels(52) = "CX"
asTopLevels(53) = "CC"
asTopLevels(54) = "CO"
asTopLevels(55) = "KM"
asTopLevels(56) = "CD"
asTopLevels(57) = "CG"
asTopLevels(58) = "CK"
asTopLevels(59) = "CR"
asTopLevels(60) = "CI"
asTopLevels(61) = "HR"
asTopLevels(62) = "CU"
asTopLevels(63) = "CY"
asTopLevels(64) = "CZ"
asTopLevels(65) = "DK"
asTopLevels(66) = "DJ"
asTopLevels(67) = "DM"
asTopLevels(68) = "DO"
asTopLevels(69) = "TP"
asTopLevels(70) = "EC"
asTopLevels(71) = "EG"
asTopLevels(72) = "SV"
asTopLevels(73) = "GQ"
asTopLevels(74) = "ER"
asTopLevels(75) = "EE"
asTopLevels(76) = "ET"
asTopLevels(77) = "FK"
asTopLevels(78) = "FO"
asTopLevels(79) = "FJ"
asTopLevels(80) = "FI"
asTopLevels(81) = "FR"
asTopLevels(82) = "GF"
asTopLevels(83) = "PF"
asTopLevels(84) = "TF"
asTopLevels(85) = "GA"
asTopLevels(86) = "GM"
asTopLevels(87) = "GE"
asTopLevels(88) = "DE"
asTopLevels(89) = "GH"
asTopLevels(90) = "GI"
asTopLevels(91) = "GR"
asTopLevels(92) = "GL"
asTopLevels(93) = "GD"
asTopLevels(94) = "GP"
asTopLevels(95) = "GU"
asTopLevels(96) = "GT"
asTopLevels(97) = "GG"
asTopLevels(98) = "GN"
asTopLevels(99) = "GW"
asTopLevels(100) = "GY"
asTopLevels(101) = "HT"
asTopLevels(102) = "HM"
asTopLevels(103) = "VA"
asTopLevels(104) = "HN"
asTopLevels(105) = "HK"
asTopLevels(106) = "HU"
asTopLevels(107) = "IS"
asTopLevels(108) = "IN"
asTopLevels(109) = "ID"
asTopLevels(110) = "IR"
asTopLevels(111) = "IQ"
asTopLevels(112) = "IE"
asTopLevels(113) = "IM"
asTopLevels(114) = "IL"
asTopLevels(115) = "IT"
asTopLevels(116) = "JM"
asTopLevels(117) = "JP"
asTopLevels(118) = "JE"
asTopLevels(119) = "JO"
asTopLevels(120) = "KZ"
asTopLevels(121) = "KE"
asTopLevels(122) = "KI"
asTopLevels(123) = "KP"
asTopLevels(124) = "KR"
asTopLevels(125) = "KW"
asTopLevels(126) = "KG"
asTopLevels(127) = "LA"
asTopLevels(128) = "LV"
asTopLevels(129) = "LB"
asTopLevels(130) = "LS"
asTopLevels(131) = "LR"
asTopLevels(132) = "LY"
asTopLevels(133) = "LI"
asTopLevels(134) = "LT"
asTopLevels(135) = "LU"
asTopLevels(136) = "MO"
asTopLevels(137) = "MK"
asTopLevels(138) = "MG"
asTopLevels(139) = "MW"
asTopLevels(140) = "MY"
asTopLevels(141) = "MV"
asTopLevels(142) = "ML"
asTopLevels(143) = "MT"
asTopLevels(144) = "MH"
asTopLevels(145) = "MQ"
asTopLevels(146) = "MR"
asTopLevels(147) = "MU"
asTopLevels(148) = "YT"
asTopLevels(149) = "MX"
asTopLevels(150) = "FM"
asTopLevels(151) = "MD"
asTopLevels(152) = "MC"
asTopLevels(153) = "MN"
asTopLevels(154) = "MS"
asTopLevels(155) = "MA"
asTopLevels(156) = "MZ"
asTopLevels(157) = "MM"
asTopLevels(158) = "NA"
asTopLevels(159) = "NR"
asTopLevels(160) = "NP"
asTopLevels(161) = "NL"
asTopLevels(162) = "AN"
asTopLevels(163) = "NC"
asTopLevels(164) = "NZ"
asTopLevels(165) = "NI"
asTopLevels(166) = "NE"
asTopLevels(167) = "NG"
asTopLevels(168) = "NU"
asTopLevels(169) = "NF"
asTopLevels(170) = "MP"
asTopLevels(171) = "NO"
asTopLevels(172) = "OM"
asTopLevels(173) = "PK"
asTopLevels(174) = "PW"
asTopLevels(175) = "PA"
asTopLevels(176) = "PG"
asTopLevels(177) = "PY"
asTopLevels(178) = "PE"
asTopLevels(179) = "PH"
asTopLevels(180) = "PN"
asTopLevels(181) = "PL"
asTopLevels(182) = "PT"
asTopLevels(183) = "PR"
asTopLevels(184) = "QA"
asTopLevels(185) = "RE"
asTopLevels(186) = "RO"
asTopLevels(187) = "RU"
asTopLevels(188) = "RW"
asTopLevels(189) = "KN"
asTopLevels(190) = "LC"
asTopLevels(191) = "VC"
asTopLevels(192) = "WS"
asTopLevels(193) = "SM"
asTopLevels(194) = "ST"
asTopLevels(195) = "SA"
asTopLevels(196) = "SN"
asTopLevels(197) = "SC"
asTopLevels(198) = "SL"
asTopLevels(199) = "SG"
asTopLevels(200) = "SK"
asTopLevels(201) = "SI"
asTopLevels(202) = "SB"
asTopLevels(203) = "SO"
asTopLevels(204) = "ZA"
asTopLevels(205) = "GS"
asTopLevels(206) = "ES"
asTopLevels(207) = "LK"
asTopLevels(208) = "SH"
asTopLevels(209) = "PM"
asTopLevels(210) = "SD"
asTopLevels(211) = "SR"
asTopLevels(212) = "SJ"
asTopLevels(213) = "SZ"
asTopLevels(214) = "SE"
asTopLevels(215) = "CH"
asTopLevels(216) = "SY"
asTopLevels(217) = "TW"
asTopLevels(218) = "TJ"
asTopLevels(219) = "TZ"
asTopLevels(220) = "TH"
asTopLevels(221) = "TG"
asTopLevels(222) = "TK"
asTopLevels(223) = "TO"
asTopLevels(224) = "TT"
asTopLevels(225) = "TN"
asTopLevels(226) = "TR"
asTopLevels(227) = "TM"
asTopLevels(228) = "TC"
asTopLevels(229) = "TV"
asTopLevels(230) = "UG"
asTopLevels(231) = "UA"
asTopLevels(232) = "AE"
asTopLevels(233) = "GB"
asTopLevels(234) = "US"
asTopLevels(235) = "UM"
asTopLevels(236) = "UY"
asTopLevels(237) = "UZ"
asTopLevels(238) = "VU"
asTopLevels(239) = "VE"
asTopLevels(240) = "VN"
asTopLevels(241) = "VG"
asTopLevels(242) = "VI"
asTopLevels(243) = "WF"
asTopLevels(244) = "EH"
asTopLevels(245) = "YE"
asTopLevels(246) = "YU"
asTopLevels(247) = "ZR"
asTopLevels(248) = "ZM"
asTopLevels(249) = "ZW"
asTopLevels(250) = "UK"

For ictr = 0 To iNumDomains - 1
    If asTopLevels(ictr) = DomainString Then
        bAns = True
        Exit For
    End If
Next
    isTopLevelDomain = bAns
End Function


Public Function FillBrGrid(vBRID As Variant, GridName As VSFlexGrid)
    Dim rst As ADODB.Recordset
    Set rst = New ADODB.Recordset
    rst.Open "select * from t_Statement where p_BranchId='" & Trim(vBRID) & "' order by p_Date, p_SNo", CNimanager
    
    With GridName
        .Width = 9135
        .AllowUserResizing = flexResizeBoth
        .Rows = 1
        .Cols = 9
        .FixedRows = 1
        .Font.Name = "verdana"
        .FontBold = True
        .FontSize = 7
        .TextMatrix(0, 0) = "Date"
        .TextMatrix(0, 1) = "From/To"
        .TextMatrix(0, 2) = "Credit"
        .TextMatrix(0, 3) = "Debit"
        .TextMatrix(0, 4) = "Loan/Lib."
        .TextMatrix(0, 5) = "Number"
        .TextMatrix(0, 6) = "Description"
        .TextMatrix(0, 7) = "Ledger"
        .TextMatrix(0, 8) = "Type"
        
        .ColWidth(0) = 1200
        .ColWidth(1) = 500
        .ColWidth(2) = 1000
        .ColWidth(3) = 1000
        .ColWidth(4) = 1000
        .ColWidth(5) = 1000
        .ColWidth(6) = 1100
        .ColWidth(7) = 1200

        .FixedAlignment(0) = flexAlignLeftCenter
        .FixedAlignment(1) = flexAlignLeftCenter
        .FixedAlignment(2) = flexAlignLeftCenter
        .FixedAlignment(3) = flexAlignLeftCenter
        .FixedAlignment(4) = flexAlignLeftCenter
        .FixedAlignment(5) = flexAlignLeftCenter
        .FixedAlignment(6) = flexAlignLeftCenter
        .FixedAlignment(7) = flexAlignLeftCenter
        .FixedAlignment(8) = flexAlignLeftCenter
        
        .ColAlignment(0) = flexAlignLeftCenter
        .ColAlignment(1) = flexAlignLeftCenter
        .ColAlignment(2) = flexAlignLeftCenter
        .ColAlignment(3) = flexAlignLeftCenter
        .ColAlignment(4) = flexAlignLeftCenter
        .ColAlignment(5) = flexAlignLeftCenter
        .ColAlignment(6) = flexAlignLeftCenter
        .ColAlignment(7) = flexAlignLeftCenter
        .ColAlignment(8) = flexAlignLeftCenter
        
        
    
        i = 1
        If Not rst.EOF Or Not rst.BOF Then
            While Not rst.EOF
            .Rows = .Rows + 1
            .TextMatrix(i, 0) = Format(rst("p_Date"), "dd-MMM-yyyy")
            .TextMatrix(i, 1) = Trim(rst("p_ById"))
            .TextMatrix(i, 2) = Trim(Replace(FormatNumber(Val(Null2Blank(rst("p_Credit"))), 2), ",", ""))
            .TextMatrix(i, 3) = Trim(Replace(FormatNumber(Val(Null2Blank(rst("p_Debit"))), 2), ",", ""))
            .TextMatrix(i, 4) = Trim(Replace(FormatNumber(Val(Null2Blank(rst("p_LoanLiability"))), 2), ",", ""))
            .TextMatrix(i, 5) = Trim(Null2Blank(rst("p_ChequeNo")))
            .TextMatrix(i, 6) = Trim(Null2Blank(rst("p_Desc")))
            .TextMatrix(i, 7) = Trim(Null2Blank(rst("p_Ledger")))
            .TextMatrix(i, 8) = Trim(rst("p_Type"))
            i = i + 1
            rst.MoveNext
            Wend
        End If
    End With
If Not Trim(vBRID) = "" Then
GridName.Visible = True
Else
GridName.Visible = False
End If
End Function

Public Function FillVenGrid(vVID As Variant, GridName As VSFlexGrid)
    Dim rst As ADODB.Recordset
    Set rst = New ADODB.Recordset
    'rst.Open "select * from t_Statement where p_BranchId='" & Trim(vBRID) & "' order by p_Date, p_SNo", CNimanager
    rst.Open "select * from t_VendorStatement where p_VendorId='" & Trim(vVID) & "' order by p_Date, p_SNo", CNimanager
    
    With GridName
        .Width = 9135
        .AllowUserResizing = flexResizeColumns
        .Rows = 1
        .Cols = 9
        .FixedRows = 1
        .Font.Name = "verdana"
        .FontBold = True
        .FontSize = 7
        .TextMatrix(0, 0) = "Date"
        .TextMatrix(0, 1) = "From/To"
        .TextMatrix(0, 2) = "Credit"
        .TextMatrix(0, 3) = "Debit"
        .TextMatrix(0, 4) = "Loan/Lib."
        .TextMatrix(0, 5) = "Number"
        .TextMatrix(0, 6) = "Description"
        .TextMatrix(0, 7) = "Ledger"
        .TextMatrix(0, 8) = "Type"
        
        .ColWidth(0) = 1200
        .ColWidth(1) = 500
        .ColWidth(2) = 1000
        .ColWidth(3) = 1000
        .ColWidth(4) = 1000
        .ColWidth(5) = 1000
        .ColWidth(6) = 1100
        .ColWidth(7) = 1200

        .FixedAlignment(0) = flexAlignLeftCenter
        .FixedAlignment(1) = flexAlignLeftCenter
        .FixedAlignment(2) = flexAlignLeftCenter
        .FixedAlignment(3) = flexAlignLeftCenter
        .FixedAlignment(4) = flexAlignLeftCenter
        .FixedAlignment(5) = flexAlignLeftCenter
        .FixedAlignment(6) = flexAlignLeftCenter
        .FixedAlignment(7) = flexAlignLeftCenter
        .FixedAlignment(8) = flexAlignLeftCenter
        
        .ColAlignment(0) = flexAlignLeftCenter
        .ColAlignment(1) = flexAlignLeftCenter
        .ColAlignment(2) = flexAlignLeftCenter
        .ColAlignment(3) = flexAlignLeftCenter
        .ColAlignment(4) = flexAlignLeftCenter
        .ColAlignment(5) = flexAlignLeftCenter
        .ColAlignment(6) = flexAlignLeftCenter
        .ColAlignment(7) = flexAlignLeftCenter
        .ColAlignment(8) = flexAlignLeftCenter
        
        
    
        i = 1
        If Not rst.EOF Or Not rst.BOF Then
            While Not rst.EOF
            .Rows = .Rows + 1
            .TextMatrix(i, 0) = Format(rst("p_Date"), "dd-MMM-yyyy")
            .TextMatrix(i, 1) = Trim(rst("p_ById"))
            .TextMatrix(i, 2) = Trim(Replace(FormatNumber(Val(Null2Blank(rst("p_Credit"))), 2), ",", ""))
            .TextMatrix(i, 3) = Trim(Replace(FormatNumber(Val(Null2Blank(rst("p_Debit"))), 2), ",", ""))
            .TextMatrix(i, 4) = Trim(Replace(FormatNumber(Val(Null2Blank(rst("p_LoanLiability"))), 2), ",", ""))
            .TextMatrix(i, 5) = Trim(Null2Blank(rst("p_ChequeNo")))
            .TextMatrix(i, 6) = Trim(Null2Blank(rst("p_Desc")))
            .TextMatrix(i, 7) = Trim(Null2Blank(rst("p_Ledger")))
            .TextMatrix(i, 8) = Trim(rst("p_Type"))
            i = i + 1
            rst.MoveNext
            Wend
        End If
    End With
If Not Trim(vVID) = "" Then
GridName.Visible = True
Else
GridName.Visible = False
End If
End Function

⌨️ 快捷键说明

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