Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Access 2013 - Pobieranie danych po wyborze opcji

netcomers 27 Aug 2015 17:39 696 6
  • #1
    netcomers
    Level 20  
    Mam mały problem, utknąłem w miejscu i nie mam pojęcia jak ruszyć do przodu.
    Utworzyłem w Accesie bazę, która zaczytuje dane z programu magazynowego, w tym towar wraz z cenami. Na podstawie kwerendy wybierającej uzyskuję dane takie jak: Nazwa towaru, cena netto1 (PLN), cena brutto1 (PLN), cena netto2 (EUR), cena brutto2 (EUR).



    Baza, którą zrobiłem ma mi pomóc w tworzeniu ofert dla klientów. W formularzu głównym są informacje o kliencie, natomiast w podformularzu towary, które wybieram do oferty. Wszystko to działa jak należy z cenami w PLN. Po wybraniu towaru pobierane są ceny, wpisuję ilość, udzielam rabatu - wyliczane są automatycznie ceny i wartości po rabacie. To wszystko widoczne jest w wygenerowanym raporcie. I to działa jak należy

    W związku z tym, że niektóry towar mam w EUR, chciałem także to uwzględnić w bazie. Dodałem zatem wybór opcji do pozycji w podformularzu - do wyboru ceny PLN lub EUR. Odpowiednio przypisałem je jako PLN wartość 1 oraz EUR wartość 2. Wybór waluty zapisuje się w tabeli w zależności od wyboru.

    I teraz chciałbym, aby w zależności od wyboru waluty przeliczane były ceny i wartości dla każdej pozycji w podformularzu jak i w raporcie. Nie wiem jak to zrobić...
  • #3
    netcomers
    Level 20  
    Wizualnie wygląda to tak:

    Access 2013 - Pobieranie danych po wyborze opcji

    Formularz główny:


    Option Compare Database

    Private Sub Podgląd_oferty_Click()
    On Error GoTo Err_Podgląd_oferty_Click

    Dim stDocName As String

    stDocName = "Oferta"
    DoCmd.OpenReport stDocName, acPreview

    Exit_Podgląd_oferty_Click:
    Exit Sub

    Err_Podgląd_oferty_Click:
    MsgBox Err.Description
    Resume Exit_Podgląd_oferty_Click

    End Sub

    Private Sub Zapisz_ofertę_Click()
    On Error GoTo Err_Zapisz_ofertę_Click


    DoCmd.RunCommand acCmdSaveRecord

    Exit_Zapisz_ofertę_Click:
    Exit Sub

    Err_Zapisz_ofertę_Click:
    MsgBox Err.Description
    Resume Exit_Zapisz_ofertę_Click

    End Sub
    Private Sub Drukuj_raport_Click()
    On Error GoTo Err_Drukuj_raport_Click

    Dim stDocName As String

    stDocName = "Oferta"
    DoCmd.OpenReport stDocName, acNormal

    Exit_Drukuj_raport_Click:
    Exit Sub

    Err_Drukuj_raport_Click:
    MsgBox Err.Description
    Resume Exit_Drukuj_raport_Click

    End Sub
    Private Sub Wyślij_e_mail_Click()
    On Error GoTo Err_Wyślij_e_mail_Click

    Dim stDocName As String

    stDocName = "Oferta"
    DoCmd.SendObject acReport, stDocName

    Exit_Wyślij_e_mail_Click:
    Exit Sub

    Err_Wyślij_e_mail_Click:
    MsgBox Err.Description
    Resume Exit_Wyślij_e_mail_Click

    End Sub
    Private Sub Polecenie55_Click()
    On Error GoTo Err_Polecenie55_Click


    DoCmd.GoToRecord , , acFirst

    Exit_Polecenie55_Click:
    Exit Sub

    Err_Polecenie55_Click:
    MsgBox Err.Description
    Resume Exit_Polecenie55_Click

    End Sub
    Private Sub Polecenie56_Click()
    On Error GoTo Err_Polecenie56_Click


    DoCmd.GoToRecord , , acPrevious

    Exit_Polecenie56_Click:
    Exit Sub

    Err_Polecenie56_Click:
    MsgBox Err.Description
    Resume Exit_Polecenie56_Click

    End Sub
    Private Sub Polecenie57_Click()
    On Error GoTo Err_Polecenie57_Click


    DoCmd.GoToRecord , , acNext

    Exit_Polecenie57_Click:
    Exit Sub

    Err_Polecenie57_Click:
    MsgBox Err.Description
    Resume Exit_Polecenie57_Click

    End Sub
    Private Sub Polecenie58_Click()
    On Error GoTo Err_Polecenie58_Click


    DoCmd.GoToRecord , , acLast

    Exit_Polecenie58_Click:
    Exit Sub

    Err_Polecenie58_Click:
    MsgBox Err.Description
    Resume Exit_Polecenie58_Click

    End Sub
    Private Sub Polecenie59_Click()
    On Error GoTo Err_Polecenie59_Click


    DoCmd.GoToRecord , , acNewRec

    Exit_Polecenie59_Click:
    Exit Sub

    Err_Polecenie59_Click:
    MsgBox Err.Description
    Resume Exit_Polecenie59_Click

    End Sub
    Private Sub Polecenie60_Click()
    On Error GoTo Err_Polecenie60_Click


    DoCmd.RunCommand acCmdSelectRecord
    DoCmd.RunCommand acCmdDeleteRecord

    Exit_Polecenie60_Click:
    Exit Sub

    Err_Polecenie60_Click:
    MsgBox Err.Description
    Resume Exit_Polecenie60_Click

    End Sub
    Private Sub Polecenie61_Click()
    On Error GoTo Err_Polecenie61_Click


    If Me.Dirty Then Me.Dirty = False
    DoCmd.Close

    Exit_Polecenie61_Click:
    Exit Sub

    Err_Polecenie61_Click:
    MsgBox Err.Description
    Resume Exit_Polecenie61_Click

    End Sub
    Private Sub Polecenie64_Click()
    On Error GoTo Err_Polecenie64_Click


    DoCmd.GoToRecord , , acNext

    Exit_Polecenie64_Click:
    Exit Sub

    Err_Polecenie64_Click:
    MsgBox Err.Description
    Resume Exit_Polecenie64_Click

    End Sub
    Private Sub Polecenie78_Click()
    On Error GoTo Err_Polecenie78_Click


    DoCmd.GoToRecord , , acNext

    Exit_Polecenie78_Click:
    Exit Sub

    Err_Polecenie78_Click:
    MsgBox Err.Description
    Resume Exit_Polecenie78_Click

    End Sub


    Podformularz:

    Option Compare Database

    Private Sub Usuń_rekord_Click()
    On Error GoTo Err_Usuń_rekord_Click


    DoCmd.RunCommand acCmdSelectRecord
    DoCmd.RunCommand acCmdDeleteRecord

    Exit_Usuń_rekord_Click:
    Exit Sub

    Err_Usuń_rekord_Click:
    MsgBox Err.Description
    Resume Exit_Usuń_rekord_Click

    End Sub
    Private Sub Polecenie26_Click()
    On Error GoTo Err_Polecenie26_Click


    DoCmd.RunCommand acCmdSelectRecord
    DoCmd.RunCommand acCmdDeleteRecord

    Exit_Polecenie26_Click:
    Exit Sub

    Err_Polecenie26_Click:
    MsgBox Err.Description
    Resume Exit_Polecenie26_Click

    End Sub

    Private Sub opisy_rabat_DblClick(Cancel As Integer)

    End Sub

    Private Sub Polecenie27_Click()
    On Error GoTo Err_Polecenie27_Click


    DoCmd.RunCommand acCmdSelectRecord
    DoCmd.RunCommand acCmdDeleteRecord

    Exit_Polecenie27_Click:
    Exit Sub

    Err_Polecenie27_Click:
    MsgBox Err.Description
    Resume Exit_Polecenie27_Click

    End Sub
  • #4
    PRL
    Level 39  
    Jeszcze wklej widok projektu tabeli towarami.
  • #5
    netcomers
    Level 20  
    Widok projektu tabeli Towar (tabel połączona z bazą MySQL):

    Na samym końcu kwerenda wybierająca określone towary. Access 2013 - Pobieranie danych po wyborze opcji Access 2013 - Pobieranie danych po wyborze opcji Access 2013 - Pobieranie danych po wyborze opcji Access 2013 - Pobieranie danych po wyborze opcji
  • Helpful post
    #6
    PRL
    Level 39  
    Na formularzu masz pole opcji z walutami. Dlaczego nie wykorzystasz ich zdarzenia po aktualizacji, do przeliczenia kwoty?
  • #7
    netcomers
    Level 20  
    Problem rozwiązany. Dziękuję za pomoc.