אקסס האשכול המרכזי לשאלות וטיפים באקסס

כנראה הקוד לא מעודכן.
תעלה לכאן את הקוד של המודול mdlValidations.
 
כנראה הקוד לא מעודכן.
תעלה לכאן את הקוד של המודול mdlValidations.
Option Compare Database
Option Explicit

Public Function fValidateBankAccount(lngBankNumber As Long, _
lngBranch As Long, _
lngAccount As Long) As Boolean

Dim lngRequiredAccountLength As Long
Dim lngTotal As Long

Dim strArrayAccount() As String
Dim strArrayBranch() As String

Dim strAccount As String
Dim strBranch As String

fValidateBankAccount = False

' קביעת אורך המספר חשבון
Select Case lngBankNumber
Case 10, 13, 34
lngRequiredAccountLength = 8
Case 12, 4 ' פועלים, יהב
lngRequiredAccountLength = 6
Case 11, 17 ' דיסקונט, מרכנתיל דיסקונט
lngRequiredAccountLength = 9
Case 20 ' מזרחי טפחות
lngRequiredAccountLength = 6
Case 31, 52 ' הבינלאומי, פאגי
lngRequiredAccountLength = 9
Case 9 ' הדואר
lngRequiredAccountLength = 9
Case 22 ' Citibank N.A
lngRequiredAccountLength = 9
Case 46 ' מסד
lngRequiredAccountLength = 9
Case 14 ' אוצר החייל
lngRequiredAccountLength = 9
End Select

If lngBankNumber <> 54 Then
strAccount = String(lngRequiredAccountLength - Len(CStr(Left(lngAccount, lngRequiredAccountLength))), "0") & CStr(Left(lngAccount, lngRequiredAccountLength))
Else
strAccount = CStr(lngAccount)
End If
' strAccount = Right("0000000000" & CStr(lngAccount), lngRequiredAccountLength) ' This is an alternative to the previous line
strAccount = StrConv(strAccount, vbUnicode)
strArrayAccount = Split(strAccount, vbNullChar)

If lngBankNumber = 20 And lngBranch > 400 Then ' אם מספר הסניף בבנק מזרחי-טפחות גדול מ400
strBranch = CStr(lngBranch - 400) ' לפני החישובים יש להפחית 400
Else ' אם מספר הסניף בבנק מזרחי-טפחות לא גדול מ400
strBranch = CStr(lngBranch) ' לפני החישובים אל תבצע כלום
End If

If Len(strBranch) < 3 Then
strBranch = String(3 - Len(strBranch), "0") & strBranch ' מוסיף אפסים להשלים ל3 ספרות
End If
strBranch = StrConv(strBranch, vbUnicode)
strArrayBranch = Split(strBranch, vbNullChar)

Select Case lngBankNumber
Case 54
' כל חשבון חוקי
fValidateBankAccount = True
Case 10, 13, 34
Select Case CLng(Right( _
CLng(strArrayBranch(0)) * 10 + _
CLng(strArrayBranch(1)) * 9 + _
CLng(strArrayBranch(2)) * 8 + _
CLng(strArrayAccount(0)) * 7 + _
CLng(strArrayAccount(1)) * 6 + _
CLng(strArrayAccount(2)) * 5 + _
CLng(strArrayAccount(3)) * 4 + _
CLng(strArrayAccount(4)) * 3 + _
CLng(strArrayAccount(5)) * 2 + _
CLng(Right(lngAccount, 2)) _
, 2))
Case 90, 72, 70, 60, 20
fValidateBankAccount = True
Case Else
fValidateBankAccount = False
End Select
Case 12, 4
lngTotal = CLng(strArrayBranch(0)) * 9 + _
CLng(strArrayBranch(1)) * 8 + _
CLng(strArrayBranch(2)) * 7 + _
CLng(strArrayAccount(0)) * 6 + _
CLng(strArrayAccount(1)) * 5 + _
CLng(strArrayAccount(2)) * 4 + _
CLng(strArrayAccount(3)) * 3 + _
CLng(strArrayAccount(4)) * 2 + _
CLng(strArrayAccount(5)) * 1
Select Case lngTotal Mod 11
Case 0, 2
fValidateBankAccount = True
Case 4, 6
Select Case lngBankNumber
Case 12
fValidateBankAccount = True
Case Else
fValidateBankAccount = False
End Select
Case Else
fValidateBankAccount = False
End Select
Case 11, 17
lngTotal = CLng(strArrayAccount(0)) * 9 + _
CLng(strArrayAccount(1)) * 8 + _
CLng(strArrayAccount(2)) * 7 + _
CLng(strArrayAccount(3)) * 6 + _
CLng(strArrayAccount(4)) * 5 + _
CLng(strArrayAccount(5)) * 4 + _
CLng(strArrayAccount(6)) * 3 + _
CLng(strArrayAccount(7)) * 2 + _
CLng(strArrayAccount(8)) * 1
Select Case lngTotal Mod 11
Case 0, 2, 4
fValidateBankAccount = True
Case Else
fValidateBankAccount = False
End Select
Case 20
lngTotal = CLng(strArrayBranch(0)) * 9 + _
CLng(strArrayBranch(1)) * 8 + _
CLng(strArrayBranch(2)) * 7 + _
CLng(strArrayAccount(0)) * 6 + _
CLng(strArrayAccount(1)) * 5 + _
CLng(strArrayAccount(2)) * 4 + _
CLng(strArrayAccount(3)) * 3 + _
CLng(strArrayAccount(4)) * 2 + _
CLng(strArrayAccount(5)) * 1
Select Case lngTotal Mod 11
Case 0, 2, 4
fValidateBankAccount = True
End Select
Case 31, 52
lngTotal = CLng(strArrayAccount(0)) * 9 + _
CLng(strArrayAccount(1)) * 8 + _
CLng(strArrayAccount(2)) * 7 + _
CLng(strArrayAccount(3)) * 6 + _
CLng(strArrayAccount(4)) * 5 + _
CLng(strArrayAccount(5)) * 4 + _
CLng(strArrayAccount(6)) * 3 + _
CLng(strArrayAccount(7)) * 2 + _
CLng(strArrayAccount(8)) * 1
Select Case lngTotal Mod 11
Case 0, 6
fValidateBankAccount = True
Case Else
lngTotal = CLng(strArrayAccount(3)) * 6 + _
CLng(strArrayAccount(4)) * 5 + _
CLng(strArrayAccount(5)) * 4 + _
CLng(strArrayAccount(6)) * 3 + _
CLng(strArrayAccount(7)) * 2 + _
CLng(strArrayAccount(8)) * 1
If lngTotal Mod 11 = 0 Or lngTotal Mod 11 = 6 Then
fValidateBankAccount = True
End If
End Select
Case 9
lngTotal = CLng(strArrayAccount(0)) * 9 + _
CLng(strArrayAccount(1)) * 8 + _
CLng(strArrayAccount(2)) * 7 + _
CLng(strArrayAccount(3)) * 6 + _
CLng(strArrayAccount(4)) * 5 + _
CLng(strArrayAccount(5)) * 4 + _
CLng(strArrayAccount(6)) * 3 + _
CLng(strArrayAccount(7)) * 2 + _
CLng(strArrayAccount(8)) * 1
If lngTotal Mod 10 = 0 Then
fValidateBankAccount = True
End If
Case 22
lngTotal = CLng(strArrayAccount(0)) * 3 + _
CLng(strArrayAccount(1)) * 2 + _
CLng(strArrayAccount(2)) * 7 + _
CLng(strArrayAccount(3)) * 6 + _
CLng(strArrayAccount(4)) * 5 + _
CLng(strArrayAccount(5)) * 4 + _
CLng(strArrayAccount(6)) * 3 + _
CLng(strArrayAccount(7)) * 2
If 11 - (lngTotal Mod 11) = CLng(strArrayAccount(8)) Then
fValidateBankAccount = True
End If
Case 46
lngTotal = CLng(strArrayBranch(0)) * 9 + _
CLng(strArrayBranch(1)) * 8 + _
CLng(strArrayBranch(2)) * 7 + _
CLng(strArrayAccount(0)) * 6 + _
CLng(strArrayAccount(1)) * 5 + _
CLng(strArrayAccount(2)) * 4 + _
CLng(strArrayAccount(3)) * 3 + _
CLng(strArrayAccount(4)) * 2 + _
CLng(strArrayAccount(5)) * 1
Select Case lngTotal Mod 11
Case 0
fValidateBankAccount = True
Case 2
Select Case strBranch
Case 154, 166, 178, 181, 183, 191, 192, 503, 505, 507, 515, 516, 527, 539
fValidateBankAccount = True
End Select
End Select
If fValidateBankAccount = False Then
lngTotal = CLng(strArrayAccount(0)) * 9 + _
CLng(strArrayAccount(1)) * 8 + _
CLng(strArrayAccount(2)) * 7 + _
CLng(strArrayAccount(3)) * 6 + _
CLng(strArrayAccount(4)) * 5 + _
CLng(strArrayAccount(5)) * 4 + _
CLng(strArrayAccount(6)) * 3 + _
CLng(strArrayAccount(7)) * 2 + _
CLng(strArrayAccount(8)) * 1
If lngTotal Mod 11 = 0 Then
fValidateBankAccount = True
Else
lngTotal = CLng(strArrayAccount(3)) * 6 + _
CLng(strArrayAccount(4)) * 5 + _
CLng(strArrayAccount(5)) * 4 + _
CLng(strArrayAccount(6)) * 3 + _
CLng(strArrayAccount(7)) * 2 + _
CLng(strArrayAccount(8)) * 1
If lngTotal Mod 11 = 0 Then
fValidateBankAccount = True
End If
End If
End If
Case 14
lngTotal = CLng(strArrayBranch(0)) * 9 + _
CLng(strArrayBranch(1)) * 8 + _
CLng(strArrayBranch(2)) * 7 + _
CLng(strArrayAccount(0)) * 6 + _
CLng(strArrayAccount(1)) * 5 + _
CLng(strArrayAccount(2)) * 4 + _
CLng(strArrayAccount(3)) * 3 + _
CLng(strArrayAccount(4)) * 2 + _
CLng(strArrayAccount(5)) * 1
Select Case lngTotal Mod 11
Case 0
fValidateBankAccount = True
Case 2
Select Case strBranch
Case 347, 361, 362, 363, 365, 385, 384
fValidateBankAccount = True
End Select
Case 4
Select Case strBranch
Case 361, 362, 363
fValidateBankAccount = True
End Select
End Select
If fValidateBankAccount = False Then
lngTotal = CLng(strArrayAccount(0)) * 9 + _
CLng(strArrayAccount(1)) * 8 + _
CLng(strArrayAccount(2)) * 7 + _
CLng(strArrayAccount(3)) * 6 + _
CLng(strArrayAccount(4)) * 5 + _
CLng(strArrayAccount(5)) * 4 + _
CLng(strArrayAccount(6)) * 3 + _
CLng(strArrayAccount(7)) * 2 + _
CLng(strArrayAccount(8)) * 1
If lngTotal Mod 11 = 0 Then
fValidateBankAccount = True
Else
lngTotal = CLng(strArrayAccount(3)) * 6 + _
CLng(strArrayAccount(4)) * 5 + _
CLng(strArrayAccount(5)) * 4 + _
CLng(strArrayAccount(6)) * 3 + _
CLng(strArrayAccount(7)) * 2 + _
CLng(strArrayAccount(8)) * 1
If lngTotal Mod 11 = 0 Then
fValidateBankAccount = True
End If
End If
End If
End Select

End Function

'בדיקת מספר תעודת זהות
'Public Function fValidateTeudatZehut(lngNum As Long) As Boolean
' Dim ch As String, i As Integer, iSum As Integer
' Dim iTemp As Integer
'
' For i = 1 To 8
' ch = Mid(lngNum, i, 1)
' iTemp = Val(ch) * (((i - 1) Mod 2) + 1)
' If iTemp > 9 Then iTemp = (iTemp Mod 10) + (iTemp \ 10)
' iSum = iSum + iTemp
' Next i
'
' If ((10 - (iSum Mod 10)) Mod 10) = Val(Mid(lngNum, 9, 1)) Then
' fValidateTeudatZehut = True
' Else
' fValidateTeudatZehut = False
' End If
'End Function

Public Function fValidateTeudatZehut(ID As Variant) As Boolean
' http://halemo.net/info/idcard/index.html
Dim i As Integer
Dim sum As Integer
Dim digit As Integer

ID = Val(ID)
While Len(ID) < 9
ID = "0" & ID
Wend

sum = 0

For i = 1 To 9
digit = Strings.Mid$(ID, i, 1)
If (i Mod 2) = 0 Then
If digit >= 5 Then
digit = 2 * digit - 9
Else
digit = digit * 2
End If
End If
sum = sum + digit
Next i

fValidateTeudatZehut = (sum Mod 10) = 0

End Function
 
תשתמש בקוד הזה
קוד:
Option Compare Database
Option Explicit

Public Function fValidateBankAccount(lngBankNumber As Long, _
                                          lngBranch As Long, _
                                          lngAccount As Long) As Boolean

   On Error GoTo fValidateBankAccount_Error

    Dim lngRequiredAccountLength As Long
    Dim lngTotal As Long

    Dim strArrayAccount() As String
    Dim strArrayBranch() As String

    Dim strAccount As String
    Dim strBranch As String

    If lngBankNumber = 0 Or lngBranch = 0 Or lngAccount = 0 Then Exit Function

    Select Case lngBankNumber
        Case 10, 13, 34
            lngRequiredAccountLength = 8
        Case 12, 4
            lngRequiredAccountLength = 6
        Case 11, 17
            lngRequiredAccountLength = 9
        Case 20
            lngRequiredAccountLength = 6
        Case 31, 52
            lngRequiredAccountLength = 9
        Case 9
            lngRequiredAccountLength = 9
        Case 22
            lngRequiredAccountLength = 9
        Case 46
            lngRequiredAccountLength = 9
        Case 14
            lngRequiredAccountLength = 9
        Case 54
            lngRequiredAccountLength = 9
    End Select

    strBranch = lngBranch
    strAccount = String(lngRequiredAccountLength - Len(CStr(lngAccount)), "0") & CStr(lngAccount)
    strAccount = StrConv(strAccount, vbUnicode)
    strArrayAccount = Split(strAccount, vbNullChar)

    If lngBankNumber = 20 And lngBranch > 400 Then     ' אם מספר הסניף בבנק מזרחי-טפחות גדול מ400
        strBranch = CStr(lngBranch - 400)              ' לפני החישובים יש להפחית 400
    Else                                               ' אם מספר הסניף בבנק מזרחי-טפחות לא גדול מ400
        strBranch = CStr(lngBranch)                    ' לפני החישובים אל תבצע כלום
    End If
    
    If lngBankNumber = 12 Or lngBankNumber = 4 Then
        strBranch = lngBranch
    End If

    If Len(strBranch) < 3 Then
        strBranch = String(3 - Len(strBranch), "0") & strBranch    ' מוסיף אפסים להשלים ל3 ספרות
    End If

    strBranch = StrConv(strBranch, vbUnicode)
    strArrayBranch = Split(strBranch, vbNullChar)

    Select Case lngBankNumber
        Case 10, 13, 34
            lngTotal = CLng(strArrayBranch(0)) * 10 + _
                       CLng(strArrayBranch(1)) * 9 + _
                       CLng(strArrayBranch(2)) * 8 + _
                       CLng(strArrayAccount(0)) * 7 + _
                       CLng(strArrayAccount(1)) * 6 + _
                       CLng(strArrayAccount(2)) * 5 + _
                       CLng(strArrayAccount(3)) * 4 + _
                       CLng(strArrayAccount(4)) * 3 + _
                       CLng(strArrayAccount(5)) * 2 + _
                       Right(lngAccount, 2)
            Select Case Right(lngTotal, 2)
                Case 90, 72, 70, 60, 20
                    fValidateBankAccount = True
                Case Else
                    fValidateBankAccount = False
            End Select
        Case 12
            lngTotal = CLng(strArrayBranch(0)) * 9 + _
                       CLng(strArrayBranch(1)) * 8 + _
                       CLng(strArrayBranch(2)) * 7 + _
                       CLng(strArrayAccount(0)) * 6 + _
                       CLng(strArrayAccount(1)) * 5 + _
                       CLng(strArrayAccount(2)) * 4 + _
                       CLng(strArrayAccount(3)) * 3 + _
                       CLng(strArrayAccount(4)) * 2 + _
                       CLng(strArrayAccount(5)) * 1
            Select Case lngTotal Mod 11
                Case 0, 2, 4, 6
                    fValidateBankAccount = True
                Case Else
                    fValidateBankAccount = False
            End Select
        Case 4
            lngTotal = CLng(strArrayBranch(0)) * 9 + _
                       CLng(strArrayBranch(1)) * 8 + _
                       CLng(strArrayBranch(2)) * 7 + _
                       CLng(strArrayAccount(0)) * 6 + _
                       CLng(strArrayAccount(1)) * 5 + _
                       CLng(strArrayAccount(2)) * 4 + _
                       CLng(strArrayAccount(3)) * 3 + _
                       CLng(strArrayAccount(4)) * 2 + _
                       CLng(strArrayAccount(5)) * 1
            Select Case lngTotal Mod 11
                Case 0, 2
                    fValidateBankAccount = True
                Case Else
                    fValidateBankAccount = False
            End Select
        Case 11, 17
            lngTotal = CLng(strArrayAccount(0)) * 9 + _
                       CLng(strArrayAccount(1)) * 8 + _
                       CLng(strArrayAccount(2)) * 7 + _
                       CLng(strArrayAccount(3)) * 6 + _
                       CLng(strArrayAccount(4)) * 5 + _
                       CLng(strArrayAccount(5)) * 4 + _
                       CLng(strArrayAccount(6)) * 3 + _
                       CLng(strArrayAccount(7)) * 2 + _
                       CLng(strArrayAccount(8)) * 1
            Select Case lngTotal Mod 11
                Case 0, 2, 4
                    fValidateBankAccount = True
                Case Else
                    fValidateBankAccount = False
            End Select
        Case 20
            lngTotal = CLng(strArrayBranch(0)) * 9 + _
                       CLng(strArrayBranch(1)) * 8 + _
                       CLng(strArrayBranch(2)) * 7 + _
                       CLng(strArrayAccount(0)) * 6 + _
                       CLng(strArrayAccount(1)) * 5 + _
                       CLng(strArrayAccount(2)) * 4 + _
                       CLng(strArrayAccount(3)) * 3 + _
                       CLng(strArrayAccount(4)) * 2 + _
                       CLng(strArrayAccount(5)) * 1
            Select Case lngTotal Mod 11
                Case 0, 2, 4
                    fValidateBankAccount = True
            End Select
        Case 31, 52
            lngTotal = CLng(strArrayAccount(0)) * 9 + _
                       CLng(strArrayAccount(1)) * 8 + _
                       CLng(strArrayAccount(2)) * 7 + _
                       CLng(strArrayAccount(3)) * 6 + _
                       CLng(strArrayAccount(4)) * 5 + _
                       CLng(strArrayAccount(5)) * 4 + _
                       CLng(strArrayAccount(6)) * 3 + _
                       CLng(strArrayAccount(7)) * 2 + _
                       CLng(strArrayAccount(8)) * 1
            Select Case lngTotal Mod 11
                Case 0, 6
                    fValidateBankAccount = True
                Case Else
                    lngTotal = CLng(strArrayAccount(3)) * 6 + _
                               CLng(strArrayAccount(4)) * 5 + _
                               CLng(strArrayAccount(5)) * 4 + _
                               CLng(strArrayAccount(6)) * 3 + _
                               CLng(strArrayAccount(7)) * 2 + _
                               CLng(strArrayAccount(8)) * 1
                    Select Case lngTotal Mod 11
                        Case 0, 6
                            fValidateBankAccount = True
                        Case Else
                            fValidateBankAccount = False
                    End Select
            End Select
        Case 9
            lngTotal = CLng(strArrayAccount(0)) * 9 + _
                       CLng(strArrayAccount(1)) * 8 + _
                       CLng(strArrayAccount(2)) * 7 + _
                       CLng(strArrayAccount(3)) * 6 + _
                       CLng(strArrayAccount(4)) * 5 + _
                       CLng(strArrayAccount(5)) * 4 + _
                       CLng(strArrayAccount(6)) * 3 + _
                       CLng(strArrayAccount(7)) * 2 + _
                       CLng(strArrayAccount(8)) * 1
            If lngTotal Mod 10 = 0 Then
                fValidateBankAccount = True
            Else
                fValidateBankAccount = False
            End If
        Case 54
            fValidateBankAccount = True
        Case 22
            lngTotal = CLng(strArrayAccount(0)) * 3 + _
                       CLng(strArrayAccount(1)) * 2 + _
                       CLng(strArrayAccount(2)) * 7 + _
                       CLng(strArrayAccount(3)) * 6 + _
                       CLng(strArrayAccount(4)) * 5 + _
                       CLng(strArrayAccount(5)) * 4 + _
                       CLng(strArrayAccount(6)) * 3 + _
                       CLng(strArrayAccount(7)) * 2
            If 11 - (lngTotal Mod 11) = CLng(strArrayAccount(8)) Then
                fValidateBankAccount = True
            Else
                fValidateBankAccount = False
            End If
        Case 46
            lngTotal = CLng(strArrayBranch(0)) * 9 + _
                       CLng(strArrayBranch(1)) * 8 + _
                       CLng(strArrayBranch(2)) * 7 + _
                       CLng(strArrayAccount(3)) * 6 + _
                       CLng(strArrayAccount(4)) * 5 + _
                       CLng(strArrayAccount(5)) * 4 + _
                       CLng(strArrayAccount(6)) * 3 + _
                       CLng(strArrayAccount(7)) * 2 + _
                       CLng(strArrayAccount(8)) * 1
            Select Case lngTotal Mod 11
                Case 0
                    fValidateBankAccount = True
                Case 2
                    Select Case strBranch
                        Case 154, 166, 178, 181, 183, 191, 192, 503, 505, 507, 515, 516, 527, 539
                            fValidateBankAccount = True
                        Case Else
                            fValidateBankAccount = False
                    End Select
                Case Else
                    lngTotal = CLng(strArrayAccount(0)) * 9 + _
                               CLng(strArrayAccount(1)) * 8 + _
                               CLng(strArrayAccount(2)) * 7 + _
                               CLng(strArrayAccount(3)) * 6 + _
                               CLng(strArrayAccount(4)) * 5 + _
                               CLng(strArrayAccount(5)) * 4 + _
                               CLng(strArrayAccount(6)) * 3 + _
                               CLng(strArrayAccount(7)) * 2 + _
                               CLng(strArrayAccount(8)) * 1
                    If lngTotal Mod 11 = 0 Then
                        fValidateBankAccount = True
                    Else
                        lngTotal = CLng(strArrayAccount(3)) * 6 + _
                                   CLng(strArrayAccount(4)) * 5 + _
                                   CLng(strArrayAccount(5)) * 4 + _
                                   CLng(strArrayAccount(6)) * 3 + _
                                   CLng(strArrayAccount(7)) * 2 + _
                                   CLng(strArrayAccount(8)) * 1
                        If lngTotal Mod 11 = 0 Then
                            fValidateBankAccount = True
                        Else
                            fValidateBankAccount = False
                        End If
                    End If
            End Select
        Case 14
            lngTotal = CLng(strArrayBranch(0)) * 9 + _
                       CLng(strArrayBranch(1)) * 8 + _
                       CLng(strArrayBranch(2)) * 7 + _
                       CLng(strArrayAccount(3)) * 6 + _
                       CLng(strArrayAccount(4)) * 5 + _
                       CLng(strArrayAccount(5)) * 4 + _
                       CLng(strArrayAccount(6)) * 3 + _
                       CLng(strArrayAccount(7)) * 2 + _
                       CLng(strArrayAccount(8)) * 1
            Select Case lngTotal Mod 11
                Case 0
                    fValidateBankAccount = True
                Case 2
                    Select Case strBranch
                        Case 347, 361, 362, 363, 365, 385
                            fValidateBankAccount = True
                        Case Else
                            fValidateBankAccount = False
                    End Select
                Case 4
                    Select Case strBranch
                        Case 361, 362, 363
                            fValidateBankAccount = True
                        Case Else
                            fValidateBankAccount = False
                    End Select
                Case Else
                    lngTotal = CLng(strArrayAccount(0)) * 9 + _
                               CLng(strArrayAccount(1)) * 8 + _
                               CLng(strArrayAccount(2)) * 7 + _
                               CLng(strArrayAccount(3)) * 6 + _
                               CLng(strArrayAccount(4)) * 5 + _
                               CLng(strArrayAccount(5)) * 4 + _
                               CLng(strArrayAccount(6)) * 3 + _
                               CLng(strArrayAccount(7)) * 2 + _
                               CLng(strArrayAccount(8)) * 1
                    If lngTotal Mod 11 = 0 Then
                        fValidateBankAccount = True
                    Else
                        lngTotal = CLng(strArrayAccount(3)) * 6 + _
                                   CLng(strArrayAccount(4)) * 5 + _
                                   CLng(strArrayAccount(5)) * 4 + _
                                   CLng(strArrayAccount(6)) * 3 + _
                                   CLng(strArrayAccount(7)) * 2 + _
                                   CLng(strArrayAccount(8)) * 1
                        If lngTotal Mod 11 = 0 Then
                            fValidateBankAccount = True
                        End If
                    End If
            End Select
    End Select


   On Error GoTo 0
   Exit Function

fValidateBankAccount_Error:
    fValidateBankAccount = False
    MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure fValidateBankAccount of Function mdlValidations"

End Function

Public Function fValidateTeudatZehut(ID As Variant) As Boolean


   On Error GoTo fValidateTeudatZehut_Error

    Dim lngCounter As Long
    Dim lngSum As Long
    Dim lngDigit As Long

    If Len(ID) = 0 Then fValidateTeudatZehut = False: Exit Function

    ID = Val(ID)
    While Len(ID) < 9
        ID = "0" & ID
    Wend

    lngSum = 0

    For lngCounter = 1 To 9
        lngDigit = Strings.Mid$(ID, lngCounter, 1)
        If (lngCounter Mod 2) = 0 Then
            If lngDigit >= 5 Then
                lngDigit = 2 * lngDigit - 9
            Else
                lngDigit = lngDigit * 2
            End If
        End If
        lngSum = lngSum + lngDigit
    Next lngCounter

    fValidateTeudatZehut = (lngSum Mod 10) = 0


   On Error GoTo 0
   Exit Function

fValidateTeudatZehut_Error:

    MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure fValidateTeudatZehut of Function mdlValidations"

End Function
 
תשתמש בקוד הזה
קוד:
Option Compare Database
Option Explicit

Public Function fValidateBankAccount(lngBankNumber As Long, _
                                          lngBranch As Long, _
                                          lngAccount As Long) As Boolean

   On Error GoTo fValidateBankAccount_Error

    Dim lngRequiredAccountLength As Long
    Dim lngTotal As Long

    Dim strArrayAccount() As String
    Dim strArrayBranch() As String

    Dim strAccount As String
    Dim strBranch As String

    If lngBankNumber = 0 Or lngBranch = 0 Or lngAccount = 0 Then Exit Function

    Select Case lngBankNumber
        Case 10, 13, 34
            lngRequiredAccountLength = 8
        Case 12, 4
            lngRequiredAccountLength = 6
        Case 11, 17
            lngRequiredAccountLength = 9
        Case 20
            lngRequiredAccountLength = 6
        Case 31, 52
            lngRequiredAccountLength = 9
        Case 9
            lngRequiredAccountLength = 9
        Case 22
            lngRequiredAccountLength = 9
        Case 46
            lngRequiredAccountLength = 9
        Case 14
            lngRequiredAccountLength = 9
        Case 54
            lngRequiredAccountLength = 9
    End Select

    strBranch = lngBranch
    strAccount = String(lngRequiredAccountLength - Len(CStr(lngAccount)), "0") & CStr(lngAccount)
    strAccount = StrConv(strAccount, vbUnicode)
    strArrayAccount = Split(strAccount, vbNullChar)

    If lngBankNumber = 20 And lngBranch > 400 Then     ' אם מספר הסניף בבנק מזרחי-טפחות גדול מ400
        strBranch = CStr(lngBranch - 400)              ' לפני החישובים יש להפחית 400
    Else                                               ' אם מספר הסניף בבנק מזרחי-טפחות לא גדול מ400
        strBranch = CStr(lngBranch)                    ' לפני החישובים אל תבצע כלום
    End If
   
    If lngBankNumber = 12 Or lngBankNumber = 4 Then
        strBranch = lngBranch
    End If

    If Len(strBranch) < 3 Then
        strBranch = String(3 - Len(strBranch), "0") & strBranch    ' מוסיף אפסים להשלים ל3 ספרות
    End If

    strBranch = StrConv(strBranch, vbUnicode)
    strArrayBranch = Split(strBranch, vbNullChar)

    Select Case lngBankNumber
        Case 10, 13, 34
            lngTotal = CLng(strArrayBranch(0)) * 10 + _
                       CLng(strArrayBranch(1)) * 9 + _
                       CLng(strArrayBranch(2)) * 8 + _
                       CLng(strArrayAccount(0)) * 7 + _
                       CLng(strArrayAccount(1)) * 6 + _
                       CLng(strArrayAccount(2)) * 5 + _
                       CLng(strArrayAccount(3)) * 4 + _
                       CLng(strArrayAccount(4)) * 3 + _
                       CLng(strArrayAccount(5)) * 2 + _
                       Right(lngAccount, 2)
            Select Case Right(lngTotal, 2)
                Case 90, 72, 70, 60, 20
                    fValidateBankAccount = True
                Case Else
                    fValidateBankAccount = False
            End Select
        Case 12
            lngTotal = CLng(strArrayBranch(0)) * 9 + _
                       CLng(strArrayBranch(1)) * 8 + _
                       CLng(strArrayBranch(2)) * 7 + _
                       CLng(strArrayAccount(0)) * 6 + _
                       CLng(strArrayAccount(1)) * 5 + _
                       CLng(strArrayAccount(2)) * 4 + _
                       CLng(strArrayAccount(3)) * 3 + _
                       CLng(strArrayAccount(4)) * 2 + _
                       CLng(strArrayAccount(5)) * 1
            Select Case lngTotal Mod 11
                Case 0, 2, 4, 6
                    fValidateBankAccount = True
                Case Else
                    fValidateBankAccount = False
            End Select
        Case 4
            lngTotal = CLng(strArrayBranch(0)) * 9 + _
                       CLng(strArrayBranch(1)) * 8 + _
                       CLng(strArrayBranch(2)) * 7 + _
                       CLng(strArrayAccount(0)) * 6 + _
                       CLng(strArrayAccount(1)) * 5 + _
                       CLng(strArrayAccount(2)) * 4 + _
                       CLng(strArrayAccount(3)) * 3 + _
                       CLng(strArrayAccount(4)) * 2 + _
                       CLng(strArrayAccount(5)) * 1
            Select Case lngTotal Mod 11
                Case 0, 2
                    fValidateBankAccount = True
                Case Else
                    fValidateBankAccount = False
            End Select
        Case 11, 17
            lngTotal = CLng(strArrayAccount(0)) * 9 + _
                       CLng(strArrayAccount(1)) * 8 + _
                       CLng(strArrayAccount(2)) * 7 + _
                       CLng(strArrayAccount(3)) * 6 + _
                       CLng(strArrayAccount(4)) * 5 + _
                       CLng(strArrayAccount(5)) * 4 + _
                       CLng(strArrayAccount(6)) * 3 + _
                       CLng(strArrayAccount(7)) * 2 + _
                       CLng(strArrayAccount(8)) * 1
            Select Case lngTotal Mod 11
                Case 0, 2, 4
                    fValidateBankAccount = True
                Case Else
                    fValidateBankAccount = False
            End Select
        Case 20
            lngTotal = CLng(strArrayBranch(0)) * 9 + _
                       CLng(strArrayBranch(1)) * 8 + _
                       CLng(strArrayBranch(2)) * 7 + _
                       CLng(strArrayAccount(0)) * 6 + _
                       CLng(strArrayAccount(1)) * 5 + _
                       CLng(strArrayAccount(2)) * 4 + _
                       CLng(strArrayAccount(3)) * 3 + _
                       CLng(strArrayAccount(4)) * 2 + _
                       CLng(strArrayAccount(5)) * 1
            Select Case lngTotal Mod 11
                Case 0, 2, 4
                    fValidateBankAccount = True
            End Select
        Case 31, 52
            lngTotal = CLng(strArrayAccount(0)) * 9 + _
                       CLng(strArrayAccount(1)) * 8 + _
                       CLng(strArrayAccount(2)) * 7 + _
                       CLng(strArrayAccount(3)) * 6 + _
                       CLng(strArrayAccount(4)) * 5 + _
                       CLng(strArrayAccount(5)) * 4 + _
                       CLng(strArrayAccount(6)) * 3 + _
                       CLng(strArrayAccount(7)) * 2 + _
                       CLng(strArrayAccount(8)) * 1
            Select Case lngTotal Mod 11
                Case 0, 6
                    fValidateBankAccount = True
                Case Else
                    lngTotal = CLng(strArrayAccount(3)) * 6 + _
                               CLng(strArrayAccount(4)) * 5 + _
                               CLng(strArrayAccount(5)) * 4 + _
                               CLng(strArrayAccount(6)) * 3 + _
                               CLng(strArrayAccount(7)) * 2 + _
                               CLng(strArrayAccount(8)) * 1
                    Select Case lngTotal Mod 11
                        Case 0, 6
                            fValidateBankAccount = True
                        Case Else
                            fValidateBankAccount = False
                    End Select
            End Select
        Case 9
            lngTotal = CLng(strArrayAccount(0)) * 9 + _
                       CLng(strArrayAccount(1)) * 8 + _
                       CLng(strArrayAccount(2)) * 7 + _
                       CLng(strArrayAccount(3)) * 6 + _
                       CLng(strArrayAccount(4)) * 5 + _
                       CLng(strArrayAccount(5)) * 4 + _
                       CLng(strArrayAccount(6)) * 3 + _
                       CLng(strArrayAccount(7)) * 2 + _
                       CLng(strArrayAccount(8)) * 1
            If lngTotal Mod 10 = 0 Then
                fValidateBankAccount = True
            Else
                fValidateBankAccount = False
            End If
        Case 54
            fValidateBankAccount = True
        Case 22
            lngTotal = CLng(strArrayAccount(0)) * 3 + _
                       CLng(strArrayAccount(1)) * 2 + _
                       CLng(strArrayAccount(2)) * 7 + _
                       CLng(strArrayAccount(3)) * 6 + _
                       CLng(strArrayAccount(4)) * 5 + _
                       CLng(strArrayAccount(5)) * 4 + _
                       CLng(strArrayAccount(6)) * 3 + _
                       CLng(strArrayAccount(7)) * 2
            If 11 - (lngTotal Mod 11) = CLng(strArrayAccount(8)) Then
                fValidateBankAccount = True
            Else
                fValidateBankAccount = False
            End If
        Case 46
            lngTotal = CLng(strArrayBranch(0)) * 9 + _
                       CLng(strArrayBranch(1)) * 8 + _
                       CLng(strArrayBranch(2)) * 7 + _
                       CLng(strArrayAccount(3)) * 6 + _
                       CLng(strArrayAccount(4)) * 5 + _
                       CLng(strArrayAccount(5)) * 4 + _
                       CLng(strArrayAccount(6)) * 3 + _
                       CLng(strArrayAccount(7)) * 2 + _
                       CLng(strArrayAccount(8)) * 1
            Select Case lngTotal Mod 11
                Case 0
                    fValidateBankAccount = True
                Case 2
                    Select Case strBranch
                        Case 154, 166, 178, 181, 183, 191, 192, 503, 505, 507, 515, 516, 527, 539
                            fValidateBankAccount = True
                        Case Else
                            fValidateBankAccount = False
                    End Select
                Case Else
                    lngTotal = CLng(strArrayAccount(0)) * 9 + _
                               CLng(strArrayAccount(1)) * 8 + _
                               CLng(strArrayAccount(2)) * 7 + _
                               CLng(strArrayAccount(3)) * 6 + _
                               CLng(strArrayAccount(4)) * 5 + _
                               CLng(strArrayAccount(5)) * 4 + _
                               CLng(strArrayAccount(6)) * 3 + _
                               CLng(strArrayAccount(7)) * 2 + _
                               CLng(strArrayAccount(8)) * 1
                    If lngTotal Mod 11 = 0 Then
                        fValidateBankAccount = True
                    Else
                        lngTotal = CLng(strArrayAccount(3)) * 6 + _
                                   CLng(strArrayAccount(4)) * 5 + _
                                   CLng(strArrayAccount(5)) * 4 + _
                                   CLng(strArrayAccount(6)) * 3 + _
                                   CLng(strArrayAccount(7)) * 2 + _
                                   CLng(strArrayAccount(8)) * 1
                        If lngTotal Mod 11 = 0 Then
                            fValidateBankAccount = True
                        Else
                            fValidateBankAccount = False
                        End If
                    End If
            End Select
        Case 14
            lngTotal = CLng(strArrayBranch(0)) * 9 + _
                       CLng(strArrayBranch(1)) * 8 + _
                       CLng(strArrayBranch(2)) * 7 + _
                       CLng(strArrayAccount(3)) * 6 + _
                       CLng(strArrayAccount(4)) * 5 + _
                       CLng(strArrayAccount(5)) * 4 + _
                       CLng(strArrayAccount(6)) * 3 + _
                       CLng(strArrayAccount(7)) * 2 + _
                       CLng(strArrayAccount(8)) * 1
            Select Case lngTotal Mod 11
                Case 0
                    fValidateBankAccount = True
                Case 2
                    Select Case strBranch
                        Case 347, 361, 362, 363, 365, 385
                            fValidateBankAccount = True
                        Case Else
                            fValidateBankAccount = False
                    End Select
                Case 4
                    Select Case strBranch
                        Case 361, 362, 363
                            fValidateBankAccount = True
                        Case Else
                            fValidateBankAccount = False
                    End Select
                Case Else
                    lngTotal = CLng(strArrayAccount(0)) * 9 + _
                               CLng(strArrayAccount(1)) * 8 + _
                               CLng(strArrayAccount(2)) * 7 + _
                               CLng(strArrayAccount(3)) * 6 + _
                               CLng(strArrayAccount(4)) * 5 + _
                               CLng(strArrayAccount(5)) * 4 + _
                               CLng(strArrayAccount(6)) * 3 + _
                               CLng(strArrayAccount(7)) * 2 + _
                               CLng(strArrayAccount(8)) * 1
                    If lngTotal Mod 11 = 0 Then
                        fValidateBankAccount = True
                    Else
                        lngTotal = CLng(strArrayAccount(3)) * 6 + _
                                   CLng(strArrayAccount(4)) * 5 + _
                                   CLng(strArrayAccount(5)) * 4 + _
                                   CLng(strArrayAccount(6)) * 3 + _
                                   CLng(strArrayAccount(7)) * 2 + _
                                   CLng(strArrayAccount(8)) * 1
                        If lngTotal Mod 11 = 0 Then
                            fValidateBankAccount = True
                        End If
                    End If
            End Select
    End Select


   On Error GoTo 0
   Exit Function

fValidateBankAccount_Error:
    fValidateBankAccount = False
    MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure fValidateBankAccount of Function mdlValidations"

End Function

Public Function fValidateTeudatZehut(ID As Variant) As Boolean


   On Error GoTo fValidateTeudatZehut_Error

    Dim lngCounter As Long
    Dim lngSum As Long
    Dim lngDigit As Long

    If Len(ID) = 0 Then fValidateTeudatZehut = False: Exit Function

    ID = Val(ID)
    While Len(ID) < 9
        ID = "0" & ID
    Wend

    lngSum = 0

    For lngCounter = 1 To 9
        lngDigit = Strings.Mid$(ID, lngCounter, 1)
        If (lngCounter Mod 2) = 0 Then
            If lngDigit >= 5 Then
                lngDigit = 2 * lngDigit - 9
            Else
                lngDigit = lngDigit * 2
            End If
        End If
        lngSum = lngSum + lngDigit
    Next lngCounter

    fValidateTeudatZehut = (lngSum Mod 10) = 0


   On Error GoTo 0
   Exit Function

fValidateTeudatZehut_Error:

    MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure fValidateTeudatZehut of Function mdlValidations"

End Function

וואיייי
תודה!!!! אין עליך!

אולי כדאי לעדכן את הקוד בקובץ להורדה
 
שלום לכולם, ובראש למפתחים הנכבדים
איך אני מחבר את השדות של שם ושם משפחה? שיהיו בעמודה
 
שלום לכולם, ובראש למפתחים הנכבדים
איך אני מחבר את השדות של שם ושם משפחה? שיהיו בעמודה
תוסיף בעמודה חדשה בשאילתה
קוד:
שם_מלא: [משפחה] & " " & [פרטי]
או
קוד:
FullName: [LastName] & " " [FirstName]
 
שלום וברכה עזרה דחופה
אני מנסה להכניס פרטים וזה לא מתקדם לשום מקום
נ.ב אם אפשר את הגירסה הכי מעודכנת
 
אני מנסה כבר כמה ימים לשדר קובץ למסב
אך בבדיקת הקובץ בתכנה הוא נותן שגיאה שהקובץ לא תקין
אשמח מאד מאד לעזרה-אפילו בתשלום
חבל על כל יום שעובר...
תודה רבה!!
@moyshi
@אפר
זו ממש עזרה עצומה אנחנו על סף ייאוש...
 
אני מנסה כבר כמה ימים לשדר קובץ למסב
אך בבדיקת הקובץ בתכנה הוא נותן שגיאה שהקובץ לא תקין
אשמח מאד מאד לעזרה-אפילו בתשלום
חבל על כל יום שעובר...
תודה רבה!!
@moyshi
@אפר
זו ממש עזרה עצומה אנחנו על סף ייאוש...
מצורף כאן קובץ לבניית קובצי מסב תקינים
 
מצורף
 

קבצים מצורפים

  • ‏‏אקסס ליצירת קבצי מסב דוגמה.rar
    KB 68.2 · צפיות: 134
  • תודה
Reactions: sim
עדין שגיאות
מה אני עושה לא תקין?
מי יכול לעזור?
1684752014653.png
 
אם עדיין לא הסתדרת, כתוב לי.
לא הסתדרנו
עברנו לנדרים שיעשו את העבודה....
אבל חשוב לי לדעת איך עושים את זה, ומה התקלה
אנחנו נצטרך את זה בהמשך.
תודה רבה רבה
 
לא, תודה
החלטתי לעבוד עם נדרים פלוס
הרבה יותר קל מסודר ונח...
 

פרוגבוט

תוכן שיווקי
פרסומת

פוסטים חדשים שאולי לא קראת....

הכותרת לא באה להתריס היא באה להדגיש מצב
ולא לא באתי לומר שאבא או אמא עם ילד או שניים זה לא אתגר
אבל שימו לב
בעוד אתם בונים על ההורים לרוב פסח ולכן מכשירים פיסת שיש קטן לפינת קפה. מדף במקרר. ובארון
כי מילא רוב החג נהייה אצל ההורים
ההורים והרווקים בבית קורעים את עצמם [תזכרו זה לא היה כזה מזמן]
כן אמא שלך לא נחה כבר 3 שבועות

להפוך בית שלם 100+ מטר של ארונות כיורים שולחנות מטבח סלון כיסאות מזווה מיטות
לכשר לפסח
לאפשרות שאתם וילדכם הסתובבו בחופשיות עם מצה ואפיקומן שסבא קנה
לא נכנסתי להוצאות המטורפות שקצת עוברות לידכם. למה שתקנו מצות יין או חסה או נייר כסף לציפוי המטבח
ושוב לא בהאשמה ולא בטרוניה אלא כנתון מציאותי
אז זו''צ יקר קצת שימת לב
לפרגן לבוא לעזור חצי יום
לפרגן ארוחה לעובדים בבית [הבית שלך חמץ המטבח שלהם במרפסת שרות]
לתת מילה טובה או שוקולד
והחשוב מכל
מעשרות להורים
הם חשובים יותר מכל כולל ארגון או קמחה דפסחא הם ההורים שלך

והם יממנו לך את ארוחות וסעודות החג
בס"ד

ההבדל בין נוכלות לבין כישלון



לפני כחודש נערך בבני ברק מיפגש מאוד מעניין של גוף הנקרא "הפורום להגנת הצרכן" והוא עסק בעיקר בדרכים למניעת נפילות נדל"ן בהם הציבור החרדי "מומחה" ליפול חזור ונפול.

הנוכחים, מומחים איש איש בתחומו, תיארו את הנוכלויות הרווחות היום ותיארו בצבעים קודרים ואמיתיים את המצב בכי רע, היו שם גדולי הדיינים שדיברו על הצורך להבטיח שהדור השני לא עושה שטויות עם הדירה שקיבלו מההורים וכן הלאה.

כאשר ר' איצ'ה דזיאלובסקי העניק לי את רשות המילה האחרונה (בגלל שאיחרתי – הרגל נעשה טבע) בקשתי מהנוכחים שלא יישפכו את התינוק אם המים, כלומר שלא יביאו אנשים למצב שבו הם חושדים בכל מה שלא זז שהוא נוכלות, הדבר הזה טענתי עלול להביא לשיתוק מוחלט של שוק השקעות הנדל"ן החרדי אשר היה והינו הקטליזטור הראשי של הציבור החרדי בדרכו לנישואי ילדים ברוגע ושלווה, המסר המרכזי של שתי דקות הנאום שלי זה מה שאתם הולכים לקרוא באלף מילים הבאות: לא כל עסקה כושלת היא אשמת המשווק!

צרות אחרונות משכחות את הראשונות וכך שכחתי מזה לגמרי, אלא שהשבוע פורסמה כתבה בעיתון 'דה-מרקר' (מי שלא מכיר לא הפסיד - מלא באהבת כסף ושנאת חרדים) כתבת תחקיר עומק אודות תופעת העוקצים בציבור החרדי הכרוכים במבצעי 10/90 הזכורים לשימצה.

מה שלא אהבתי זה ההתמקדות במתווך חרדי מסוים כאילו הוא שורש הרע בעולם כולו ואיך מלאו ליבו כביכול, ומעשה שהיה כך הווה בעשרות עותקים ברחבי הארץ שרובם מוכרים לי היטיב:

אברכים שחושבים שהם אנשי-עסקים פותו בידי אנשי-עסקים שחושבים שהם אברכים לקנות דירות פאר בערים שהם מכירים רק מחלונות האוטובוס בדרך למירון, נתניה ובת ים מככבות בכתבה אך זה לאורך כל הארץ בערים אשר אברך ממוצע מכיר את שמותיהם רק מהתרעות פיקוד העורף (או מהנפילות שאחריהן) ומעולם לא ביקר בהן.

אז איך משכנעים אברך כולל חסידי בן 22 שקיבל מההורים חצי מיליון ₪ לצורך יחידת 'סליחה' בביתר, לרכוש פנטהוז בהרצליה בארבע מיליון ₪ ?

מספרים לו שזה מבצע מיוחד שהתגלה רק למתווך בגילוי שמימי וכעת צריך רק לשלם עשרה אחוז שזה ארבע מאות אלף שקל ואת המאה הנותרים להביא למתווך על הגילוי הנפלא.

ואיך הדלפון שלנו יממן את מה שעשירי טבריה מתקשים?

כאן מגיע החלק השני של הגילוי אליהו – המתווך יודע לנבא כי בעוד שלוש שנים, כשיצטרכו להשלים את הרכישה הדירה תהיה שווה חמישה מיליון, ואז האברך דנן יתברר כסוחר מוצלח ביותר אשר ימשוך חזרה את הארבע מאות ועוד מיליון רווח נקי וכך לא יצטרך לגור בדירת הסליחה אלא בדירה גדולה המרחיבה דעתו של אדם ומרחיבה ארנקו של המשווק.

אז איפה הקצ'?

שעכשיו זה "אחרי שלוש שנים" ומתברר כי המחיר הכי גבוה שאפשר לקבל על הדירה הוא שלוש וחצי מיליון ואחרי ההוצאות מגיעים לשלוש מאתיים נטו ביד, מה שאומר שלפעמים עדיף לאותו אברך לעשות "ויברח" ולהותיר את הארבע מאות אצל החברה והמשווק ולחזור ליחידת הסליחה אבל וחפוי ראש, והפעם כשוכר...

זה פחות או יותר המסלול שאותו עוברות בחודשים אלו מאות משפחות מאנ"ש שכל מה שהם רצו זה לחתן את הילדים בכבוד וכעת הם מרוסקים לחלוטין וייקח להם שנים רבות אם בכלל כדי להתאושש מהתהום הכלכלית שהם הוכנסו אליה בידי משווק פלוני.

אך עשרת הקוראים כאן יודעים שעד כאן הייתה רק ההקדמה, כעת נתחיל עם הניתוח הכואב של הנתונים ואת הצד של לימוד זכות:

ובכן, קודם כל צריך לדעת שרבים מאוד הרוויחו בפריסיילים ותכניות דומות הרבה כסף, פגשתי ועודני פוגש כל יום אברכים צעירים ומבוגרים שהרוויחו סכומים אגדיים בשנים האחרונות כתוצאה מהפטנט הזה, לא ערכתי מחקר עומק אך מהתרשמותי המרוויחים רבים בהרבה על המפסידים וחבל שאת זה שומרים בסוד מאימת המצ'ינגים, הסיבה היחידה שמספרים לי על כך זה או כדי לשאול איך לעשות את הסיבוב הבא או כדי להתייעץ איך לצמצם את המסים העצומים (ברוך השם, כשיש מס סימן שיש שבח).

כל מי שקנה דירה בירושלים במחירי פריסייל של עשרים ומשהו אלף עשה את המיליון הזה, כך גם רבים שהשקיעו בחלק מהפרוייקטים בבן שמן וכך גם במקומות נוספים אשר המחירים עלו שם דרמטית ולקחו איתם את המשקיעים כלפי מעלה.

אז מה קרה בכל הפרוייקטים הכושלים?

שני דברים, הראשון שלא ידוע לי אם קרה זה הקפצת מחירים, מאוד ייתכן שמשווק מסוים יבוא לקבלן שיש לו כבר פריסייל ויגיד לו במקום למכור ב3.9 אביא לך קונים בארבע מיליון ואז מקבלים תרי זוזי: מאה אלף מהקבלן ועוד אחד מהלקוח, חד גדיא דזבין את אבא.

זה נורא לשמוע שיש דברים כאלו וטיפש מי שנופל לכך אך מי שיותר טיפש ממנו הוא מי שמאמין שאפשר למנוע דבר כזה באמצעות בירור אם המתווך אמין: גם המתווך האמין ביותר לא יעמוד בפני ניסיון של מאתיים אלף ₪ רק מלאך יוותר על זה ולא ניתנה תורת העסקים למלאכי השרת.

אך הדבר הזה לא מתקיים בדרך כלל משום שרוב הקונים יודעים לבדוק בערך את המחיר בסביבה ולא נופלים לבורות עמוקים, מה שכן קורה זה הדבר השני ועליו ברצוננו לדבר:

המחיר פשוט לא עלה, ולפעמים אפילו ירד.

כן רבייסיי, מחירי דירות לא רק עולים, לפעמים הם גם יורדים, כגון למשל בתקופת מלחמה.

עד מלחמת שמחת-נורא המחירים בנתניה למשל אכן השתוללו כי הצרפתים קנו שם בהמוניהם והוא הדין בצפת שהאמריקאים עטו עליה כי אצלם אין הבדל בין ירושלים לצפת, באמריקה זה מרחק סביר לנסיעה יומיומית לעבודה, אז מישהו משווק להם את זה כירושלים לעניים והם קנו וקנו והמחירים עלו ועלו והייתה היתכנות מסויימת לעלייה צפוייה.

ואז הגיע המלחמה ואין חוצניקים, ועוד מלחמה ועוד מבצע ושום דבר לא חזר לעצמו ואפשר לקלל את איראן (מגיע להם) ואת החמאס (עוד יותר מגיע) אך זה לא יעזור לעובדה הפשוטה שמחירי המגדלים שיועדו בעיקר לאוכלוסיות אלו צולל.

לא בהרבה, אך מספיקה ירידה של 8% כדי שכל העסק יהפוך להפסד.

זה נכון שמעצבן שהמשווק ניבא שהמחירים יעלו והם לא, אמנם אמרו חז"ל שנבואה ניתנה לשוטים אך האמונה כי יש למישהו נבואה ניתנה לשוטים גדולים עוד יותר... כל בר דעת העושה עסקים יודע שבכל הקשור לניבוי עתידות - המשווק ועטיפת המסטיק יודעים לנבא באותה מידה ומי שמסתמך על הבטחות אודות העתיד (כולל אלפי אברכים שנופלים היום בפריסייל של המחר שנקרא פינוי בינוי המבוסס על אותה נבואה כמעט) אין לו לבוא בטענות אלא על עצמו, לא המשווק נשך לשונרא.

מקווה שהצלחתי להסביר: לא כל עסקה כושלת היא נוכלות ולא כל ירידת מחירים היא עקיצה, בכל עסק ייתכן מאוד הפסד ומי שלא מוכן לכך שלא ייכנס לעולם ההשקעות.

אז להפסיק להשקיע בנדל"ן?

חלילה, כמה שיותר להשקיע בנדל"ן וכל המרבה הרי זה משובח – ואם ירצה השם ויהיה זמן נרחיב אולי בטור הבא על "מה כן" – אך רק עסקאות נטולות הימור על כל הקופה, כך שגם אם נגזר עליך להפסיד זה יהיה רק קצת ורק זמני.

ברור לי שכל הדברים האמורים כאן ברורים לכל אחד מעשרת הקוראים וסליחה שבזבזתי את זמנכם אך אם זה ירגיע אבא סוער אחד -שכועס בכל ליבו על המתווך שכאילו הפיל את החתן שלו - והיה זה שכרי.



גילוי נאות: לכותב אין ולא היה שום אינטרס כלכלי בשום פרוייקט של פריסל והוא אינו קשור היום לשום שיווק לא במישרין ולא בעקיפין, המידע מובא ללא כל אינטרס כלכלי אלא כצדקה ושירות לציבור, לשאלות ספציפיות ניתן לפנות למייל והתשובות שם חינם וללא אחריות.
סיכום אירועים: איראן בלהבות - מהמחאות ועד לסף עימות עולמי

הרקע וההתפרצות (סוף דצמבר 2025):

המחאות החלו ב-28 בדצמבר 2025 בטהראן, על רקע משבר כלכלי חריף וצניחה חדה בערך הריאל. מה שהחל כזעקת סוחרים ואזרחים על יוקר המחיה, הפך במהירות לגל הפגנות חסר תקדים ב-187 ערים הקורא להפלת המשטר.


הטבח והחשכת המידע (ינואר 2026):
  • דיכוי אלים: המשטר האיראני הגיב באכזריות יוצאת דופן. לפי נתוני ארגון זכויות האדם HRANA, נכון ל-23 בינואר, מספר ההרוגים המאומת עומד על למעלה מ-5,000 בני אדם, בהם 4,716 מפגינים ועשרות ילדים.
    יש דיווחים לא מאומתים מצד האופוזיציה האיראנית על מעל 60,000 הרוגים!

  • מעצרים המוניים: למעלה מ-26,500 בני אדם נעצרו, וקיים חשש כבד להוצאות להורג המוניות בבתי הכלא.

  • חסימת אינטרנט: החל מה-8 בינואר הוטל מצור דיגיטלי כמעט מוחלט על המדינה כדי למנוע זליגת תיעודים מהטבח.

המעורבות האמריקנית - "הארמדה של טראמפ":
הנשיא טראמפ, שחזר והזהיר את טהראן מפני המשך הטבח, הכריז ב-22 בינואר כי "ארמדה" אמריקנית (צי ספינות מלחמה, כולל נושאת המטוסים אברהם לינקולן) עושה את דרכה למפרץ הפרסי. טראמפ הבהיר כי ארה"ב בוחנת אפשרויות תקיפה ישירות נגד מטרות שלטוניות אם לא ייפסק הדיכוי. ולאחר הדלפות על ממדי הטבח, הכריז "העזרה בדרך".


הזווית הישראלית והאזורית:
  • כוננות שיא: ישראל נמצאת בדריכות עליונה מחשש שהסלמה אמריקנית תוביל לתגובה איראנית ישירה או באמצעות שלוחיה (פרוקסי).

  • איומי נתניהו: ראש הממשלה נתניהו הזהיר כי אם איראן תבצע "טעות" ותתקוף את ישראל, היא תפגוש עוצמה שטרם הכירה.

  • איומי טהראן: המשטר האיראני הודיע כי במקרה של תקיפה, בסיסים אמריקניים ויעדים בישראל יהיו "מטרות לגיטימיות".

באשכול זה נמשיך לעדכן סביב השעון בכל התפתחות, דיווחים מהשטח ופרשנויות ביטחוניות.
עודכן אדר תשפ"ד
ראשית, גופי הכשרות
ברוב אשכולות בנושא 'השקעות בשוק ההון' בפרוג, משתרבב עניין הכשרות.
למען הסדר באשכול זה נעלה עדכונים בנושא כשרות.
אני אשתדל לסכם ולתמצת ככל האפשר.

יש 4 גופי כשרות
  • בד"ץ העדה החרדית - על פי פסקי הרב יעקב בלוי זצ"ל שהיה בקיא גדול בתחום שוק ההון והוא שהביא את פסקיו ועל פי פסקים אלו נוהגים עד היום בגוף כשרות זה. היום הכשרות בראשות הרב שלמה זאב קרליבך.
  • גלאט הון - על פי פסקי רבי ניסים קרליץ והרב שמואל ואזנר. שסמכו ידיהם על הרב יעקב לנדו שמכיר את שוק ההון לעומקו. הרב משה שטרנבוך ראב"ד העדה החרדית הוא מרבני 'גלאט הון'.
  • תשואה כהלכה – הרב שמואל דוד גרוס, רב חסידי גור אשדוד ועוד רבנים מוכרים וידועים בכל שכבות הציבור החרדי.
  • כלכלה על פי ההלכה- הרב אריה דביר, על פי פסקי הרב יוסף שלום אלישיב.

היום בכל החברות יש מסלולים כשרים, שמאושרים לפחות ע"י אחת מהכשרויות.
בין החברות שנמצאת ברשותם תעודת כשרות אפשר למצוא את:
אלטשולר שחם, אינפיניטי, הפניקס, הראל, כלל, מגדל, מור, מיטב דש, מנורה.

רשימות קרנות כשרות:

הצטרפות לניוזלטר

איזה כיף שהצטרפתם לניוזלטר שלנו!

מעכשיו, תהיו הראשונים לקבל את כל העדכונים, החדשות, ההפתעות בלעדיות, והתכנים הכי חמים שלנו בפרוג!

לוח מודעות

הפרק היומי

הפרק היומי! כל ערב פרק תהילים חדש. הצטרפו אלינו לקריאת תהילים משותפת!


תהילים פרק כה

אלְדָוִד אֵלֶיךָ יי נַפְשִׁי אֶשָּׂא:באֱלֹהַי בְּךָ בָטַחְתִּי אַל אֵבוֹשָׁה אַל יַעַלְצוּ אֹיְבַי לִי:גגַּם כָּל קוֶֹיךָ לֹא יֵבֹשׁוּ יֵבֹשׁוּ הַבּוֹגְדִים רֵיקָם:דדְּרָכֶיךָ יי הוֹדִיעֵנִי אֹרְחוֹתֶיךָ לַמְּדֵנִי:ההַדְרִיכֵנִי בַאֲמִתֶּךָ וְלַמְּדֵנִי כִּי אַתָּה אֱלֹהֵי יִשְׁעִי אוֹתְךָ קִוִּיתִי כָּל הַיּוֹם:וזְכֹר רַחֲמֶיךָ יי וַחֲסָדֶיךָ כִּי מֵעוֹלָם הֵמָּה:זחַטֹּאות נְעוּרַי וּפְשָׁעַי אַל תִּזְכֹּר כְּחַסְדְּךָ זְכָר לִי אַתָּה לְמַעַן טוּבְךָ יי:חטוֹב וְיָשָׁר יי עַל כֵּן יוֹרֶה חַטָּאִים בַּדָּרֶךְ:טיַדְרֵךְ עֲנָוִים בַּמִּשְׁפָּט וִילַמֵּד עֲנָוִים דַּרְכּוֹ:יכָּל אָרְחוֹת יי חֶסֶד וֶאֱמֶת לְנֹצְרֵי בְרִיתוֹ וְעֵדֹתָיו:יאלְמַעַן שִׁמְךָ יי וְסָלַחְתָּ לַעֲוֹנִי כִּי רַב הוּא:יבמִי זֶה הָאִישׁ יְרֵא יי יוֹרֶנּוּ בְּדֶרֶךְ יִבְחָר:יגנַפְשׁוֹ בְּטוֹב תָּלִין וְזַרְעוֹ יִירַשׁ אָרֶץ:ידסוֹד יי לִירֵאָיו וּבְרִיתוֹ לְהוֹדִיעָם:טועֵינַי תָּמִיד אֶל יי כִּי הוּא יוֹצִיא מֵרֶשֶׁת רַגְלָי:טזפְּנֵה אֵלַי וְחָנֵּנִי כִּי יָחִיד וְעָנִי אָנִי:יזצָרוֹת לְבָבִי הִרְחִיבוּ מִמְּצוּקוֹתַי הוֹצִיאֵנִי:יחרְאֵה עָנְיִי וַעֲמָלִי וְשָׂא לְכָל חַטֹּאותָי:יטרְאֵה אוֹיְבַי כִּי רָבּוּ וְשִׂנְאַת חָמָס שְׂנֵאוּנִי:כשָׁמְרָה נַפְשִׁי וְהַצִּילֵנִי אַל אֵבוֹשׁ כִּי חָסִיתִי בָךְ:כאתֹּם וָיֹשֶׁר יִצְּרוּנִי כִּי קִוִּיתִיךָ:כבפְּדֵה אֱלֹהִים אֶת יִשְׂרָאֵל מִכֹּל צָרוֹתָיו:
נקרא  2  פעמים
למעלה