🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.bazy-danych.msaccess
5 messages
5 total messages Started by Krzysztof Odraki Thu, 27 Aug 2015 10:36
Access 2013 - Pobieranie danych po wyborze opcji
#133686
Author: Krzysztof Odraki
Date: Thu, 27 Aug 2015 10:36
23 lines
1359 bytes
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æ...
Re: Access 2013 - Pobieranie danych po wyborze opcji
#133687
Author: MaciejF
Date: Fri, 28 Aug 2015 05:19
29 lines
352 bytes
Wiatm,
Ja bym u¿y³ funkcji warunkowej

1)
IIF
poni¿ej tylko sam pomys³ bez sk³±dni (z palca):
IIF(waluta = PLN, Cena1 (funkcja DlookUp), Cena2)


Lub 
2)
Select Case waluta
Case PLN
PoleCena = Cena 1
Case EUR
PoleCena = Cena 2
Case Else
Obs³uga innego przypadku
End Select


Lub
3) Blok
IF
IF Else
End IF

Czy o to chodzi³o?
MF
Re: Access 2013 - Pobieranie danych po wyborze opcji
#133688
Author: MaciejF
Date: Fri, 28 Aug 2015 05:53
11 lines
308 bytes
Konkretniej to w polu Cena Formularza

=IIF(Me.Waluta = "PLN", DLookup("[TabelaCeny]", "Cena1", "[NrWyrobu] = " & Me.NrWyrobu), DLookup("[TabelaCeny]", "Cena2", "[NrWyrobu] = " & Me.NrWyrobu))


Nazwy tabel i pól trzeba zmieniæ na w³asne.
Napisane dla podania idei.
Czy o to chodzi³o?

MF
Re: Access 2013 - Pobieranie danych po wyborze opcji
#133689
Author: MaciejF
Date: Fri, 28 Aug 2015 06:58
21 lines
515 bytes
Proponuję Ci następującą funkcję,
któą trzeba wywołać w zdarzeniu po aktualizacji pola NrWyrobu i Waluta.

Function PrzepiszCene 

IF IsNull(Me.NrWyrobu) Or IsNull(Me.Waluta) Then
Exit Function

Else

IF Me.Waluta = "PLN" Then
Me.CenaSp = DLookup("[TabelaCeny]", "Cena1", "[NrWyrobu] = " & Me.NrWyrobu)
ElseIf Me.Waluta = "EUR" Then
Me.CenaSp = DLookup("[TabelaCeny]", "Cena2", "[NrWyrobu] = " & Me.NrWyrobu)
Else
Me.CenaSp = 0
End If

End Function
Re: Access 2013 - Pobieranie danych po wyborze opcji
#133690
Author: "Krzysztof O."
Date: Fri, 28 Aug 2015 15:25
41 lines
1358 bytes
W dniu pi±tek, 28 sierpnia 2015 15:58:55 UTC+2 u¿ytkownik MaciejF napisa³:
> Proponujê Ci nastêpuj±c± funkcjê,
> któ± trzeba wywo³aæ w zdarzeniu po aktualizacji pola NrWyrobu i Waluta.
> 
> Function PrzepiszCene 
> 
> IF IsNull(Me.NrWyrobu) Or IsNull(Me.Waluta) Then
> Exit Function
> 
> Else
> 
> IF Me.Waluta = "PLN" Then
> Me.CenaSp = DLookup("[TabelaCeny]", "Cena1", "[NrWyrobu] = " & Me.NrWyrobu)
> ElseIf Me.Waluta = "EUR" Then
> Me.CenaSp = DLookup("[TabelaCeny]", "Cena2", "[NrWyrobu] = " & Me.NrWyrobu)
> Else
> Me.CenaSp = 0
> End If
> 
> End Function

Dziêkujê wszystkim za podpowied¼. Rozwi±za³em to (z pomoc± kolegi z elektrody) w inny sposób. W formularzu mia³em opcje wyboru waluty, wykorzysta³em ich zdarzenia po aktualizacji. Po wybraniu z pola kombi towaru lub wpisaniu ilo¶ci towaru lub wybraniu opcji waluty PLN lub EUR, w procedurze zdarzenia AfterUpdate wywo³ywana jest procedura Policz. 

Sub Przelicz()

If Me.Ramka48 = 1 Then Me.opisy_cena = Me.opisy_towar.Column(2)
If Me.Ramka48 = 2 Then Me.opisy_cena = Me.opisy_towar.Column(3)

End Sub

Ramka48 to opcje PLN (warto¶æ 1) lub EUR (warto¶æ 2). W zale¿no¶ci od wyboru waluty z cennika pobierane s± ceny w PLN (kolumna 2 pola kombi wyboru towaru) lub EUR (kolumna 3).
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads