Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Помогите реализовать перевод средств между счетами  [new]
ThroatyOhio
Member

Откуда:
Сообщений: 5
Есть база данных Банк, в ней есть таблица Депозитные счета, поля номер счета и остаток средств, можно ли как то создать запрос или функцию для кнопки, чтобы можно было вводить номер отправителя(счета), сумму, а также получателя. Если возможно сделать проверку, хватает ли средств на счету отправителя.
24 дек 18, 20:22    [21772451]     Ответить | Цитировать Сообщить модератору
 Re: Помогите реализовать перевод средств между счетами  [new]
Eugene-LS
Member

Откуда:
Сообщений: 15
ThroatyOhio
... можно ли как то создать запрос или функцию для кнопки, чтобы можно было вводить номер отправителя(счета), сумму, а также получателя. Если возможно сделать проверку, хватает ли средств на счету отправителя.

Да! Можно.
Базу бы приложили и точку входа описали (где эта кнопка?) - отвечать было бы проще, а так возникает много вопросов.
В каком формате поле "номер счёта"? - оно ключевое или другое поле? - как и где формируется запись о переводе средств?
...
24 дек 18, 21:03    [21772475]     Ответить | Цитировать Сообщить модератору
 Re: Помогите реализовать перевод средств между счетами  [new]
ThroatyOhio
Member

Откуда:
Сообщений: 5
Eugene-LS,
прикладываю файл, он выводит ошибку 404 файл отсутствует на сервере
24 дек 18, 21:23    [21772481]     Ответить | Цитировать Сообщить модератору
 Re: Помогите реализовать перевод средств между счетами  [new]
Eugene-LS
Member

Откуда:
Сообщений: 15
ThroatyOhio
... прикладываю файл, он выводит ошибку 404 файл отсутствует на сервере

А у вас, с файлом, всё в порядке?

К сообщению приложен файл. Размер - 11Kb
24 дек 18, 21:58    [21772504]     Ответить | Цитировать Сообщить модератору
 Re: Помогите реализовать перевод средств между счетами  [new]
ThroatyOhio
Member

Откуда:
Сообщений: 5
Eugene-LS,
давайте я просто ссылку на Гугл Диск дам, у меня сама бд 5 к весит, и сжимается до 2, так что физически не получается загрузить
https://drive.google.com/open?id=12FbIPqG2ED38Cb28McQIKxGuODEqULt-
24 дек 18, 22:15    [21772511]     Ответить | Цитировать Сообщить модератору
 Re: Помогите реализовать перевод средств между счетами  [new]
Eugene-LS
Member

Откуда:
Сообщений: 15
ThroatyOhio
Eugene-LS,
давайте я просто ссылку на Гугл Диск дам, у меня сама бд 5 к весит, и сжимается до 2, так что физически не получается загрузить

Смотрю ...
а вот зря вы не документируете операции перевода средств, если что - как "концы" искать будите? :)
24 дек 18, 22:23    [21772514]     Ответить | Цитировать Сообщить модератору
 Re: Помогите реализовать перевод средств между счетами  [new]
ThroatyOhio
Member

Откуда:
Сообщений: 5
Eugene-LS,
да я даже не знаю как это реализовать правильно, поскольку с акцесом пару раз сталкивался, а тут курсовую работу нужно делать
24 дек 18, 22:24    [21772515]     Ответить | Цитировать Сообщить модератору
 Re: Помогите реализовать перевод средств между счетами  [new]
Eugene-LS
Member

Откуда:
Сообщений: 15
ThroatyOhio, ну вот :
Новое:
- Таблица "Депозитные_счета_переводы"
- Форма "Депозитные_счета_перевод"
И там:
Private Sub cmdSend_Click()
'Есть база данных Банк, в ней есть таблица Депозитные счета, _
    поля номер счета и остаток средств, можно ли как то создать запрос или функцию _
    для кнопки, чтобы можно было вводить номер отправителя(счета), _
    сумму, а также получателя. _
    Если возможно сделать проверку, хватает ли средств на счету отправителя.
'--------------------------------------------------------------------------
Dim rstSRS As DAO.Recordset
Dim rstDST As DAO.Recordset

Dim sAccSRS As String, sAccDST As String, cSum As Currency
Dim s As String, v As Variant, c As Currency
'--------------------------------------------------------------------------
'берём данные из тек. формы
    
'es 24.12.2018
'
'--------------------------------------------------------------------------
On Error GoTo cmdSend_Click_Err
    sAccSRS = Me!txtCчетИсходный & ""  'Откуда
    sAccSRS = Replace(sAccSRS, " ", "") 'маска ввода с пробелами!
    sAccDST = Me!txtCчетНазначения & "" 'Куда
    sAccDST = Replace(sAccDST, " ", "") 'маска ввода с пробелами!
    
    cSum = Me!txtСумма
    
'Проверка 01
    
    s = "[№ счета]='" & sAccSRS & "'" 'Текстовый!
    v = DLookup("[№ счета]", "[Депозитные счета]", s)
    
    If IsNull(v) = True Then
        MsgBox "Исходный счёт: " & sAccSRS & " - не существует!", vbExclamation
        Me!txtCчетИсходный.SetFocus
        Exit Sub
    End If
    
'Проверка 02
    s = "[№ счета]='" & sAccDST & "'" 'Текстовый!
    v = DLookup("[№ счета]", "[Депозитные счета]", s)
    If IsNull(v) = True Then
        MsgBox "Счёт назначения: " & sAccDST & " - не существует!", vbExclamation
        Me!txtCчетНазначения.SetFocus
        Exit Sub
    End If
    
'Проверка 03
    If sAccSRS = sAccDST Then
        MsgBox "Исходный счёт и Счёт назначения совпадают!", vbExclamation
        Me!txtCчетНазначения.SetFocus
        Exit Sub
    End If
    
'Проверка 04
    If cSum = 0 Then
        MsgBox "Сумма не указана!", vbExclamation
        Me!txtСумма.SetFocus
        Exit Sub
    End If
        
'Проверка 05
    s = "[№ счета]='" & sAccSRS & "'" 'Текстовый!
    v = DLookup("[Остаток средств]", "[Депозитные счета]", s)
    c = CCur(Nz(v, 0)) - cSum
    If c < 0 Then
        MsgBox "На Исходном счёте не достаточно средств!", vbExclamation
        Me!txtСумма = CCur(Nz(v, 0))
        Me!txtСумма.SetFocus
        Exit Sub
    End If
'--------------------------------------------------------------------------
'Поехали!
    'Поступление
    s = "SELECT * FROM [Депозитные счета] WHERE [№ счета]='" & sAccDST & "'"
    Set rstDST = CurrentDb.OpenRecordset(s, dbOpenDynaset)
    
    'Списание
    s = "SELECT * FROM [Депозитные счета] WHERE [№ счета]='" & sAccSRS & "'"
    Set rstSRS = CurrentDb.OpenRecordset(s, dbOpenDynaset)
    
    If rstDST.EOF = True Or rstSRS.EOF = True Then
        MsgBox "Ошибка данных! - Операция не возможна", vbExclamation
        Exit Sub
    End If
    
    'Поступление на счёт назначения
    With rstDST
        .Edit
        c = ![Остаток средств] + cSum
        ![Остаток средств] = c
        .Update
    End With

    'Списание с исходного
    With rstSRS
        .Edit
        c = ![Остаток средств] - cSum
        ![Остаток средств] = c
        .Update
    End With

   DoCmd.Close acForm, Me.Name

cmdSend_Click_End:
    On Error Resume Next
    rstSRS.Close
    Set rstSRS = Nothing
    rstDST.Close
    Set rstDST = Nothing
    Err.Clear
    Exit Sub

cmdSend_Click_Err:
    MsgBox "Error: " & Err.Number & vbCrLf & Err.Description & vbCrLf & _
    "in Sub: cmdSend_Click in module: Form_Депозитные_счета_перевод", vbCritical, "Error in Application"
    Resume cmdSend_Click_End

End Sub


К сообщению приложен файл (Банк РосГарант_v03.zip - 46Kb) cкачать
24 дек 18, 23:33    [21772539]     Ответить | Цитировать Сообщить модератору
 Re: Помогите реализовать перевод средств между счетами  [new]
ThroatyOhio
Member

Откуда:
Сообщений: 5
Eugene-LS,
Офигеть спасибо большое, а можно еще вас попросить, как мне лучше реализовать добавление оплаты кредита (чтобы человек видел сколько ему нужно заплатить за кредит) и оплату кредита, но уже через работника?
24 дек 18, 23:46    [21772546]     Ответить | Цитировать Сообщить модератору
 Re: Помогите реализовать перевод средств между счетами  [new]
Eugene-LS
Member

Откуда:
Сообщений: 15
ThroatyOhio
... а можно еще вас попросить, как мне лучше реализовать добавление оплаты кредита (чтобы человек видел сколько ему нужно заплатить за кредит) и оплату кредита, но уже через работника?

Да, примерно, так же!
Фиксируйте (документируйте в отдельной табличке) выплаты по кредитам + пересчёт остатка после каждой выплаты.

PS
Попросить то можно, но к просьбе нужно ещё "свободное время" приложить, коего почти нет.
Попробуйте сами, форум не для выполнения работы за вас, но для помощи при "затыках" ...
25 дек 18, 00:00    [21772551]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить