05/12/2017, 23:33
270598
Merhaba. Herkese iyi akşamlar. Konunu başlık adını ne yapacağımı bilemedim ve aklıma ilk geleni yazdım.Sorum şu ki bir arkadaşla akaryakıt hesap programı tasarladık. İlk kullanımda sorunsuzdu ancak ikinci kullanımda eksiklik baş gösterdi ve çözemedim. Sorun Access veri tabanında kaydı yapılan alımların ileri ki adımlarda kullanılması gerektiğinden bu dönem yapılacak akaryakıt ödemesinde miktar ve tutar için bir önceki dönem bilgilerini ayarlamak oldu.
Yani;1-Toplam hakediş miktarı 30 lt, bu dönem 30 lt, bir önceki dönem 0 (Bu ilk alış).
2-Toplam hakediş miktarı 50 lt, bu dönem 20 lt, bir önceki dönem 30 lt(İkinci alış).
3-Toplam hakediş miktarı 80 lt, bu dönem 30 lt, bir önceki dönem 20 lt (Üçüncü alış)
Program toplam hakedişi getiriyor ama genele uygulamak gerektiğinde bir önceki dönemi nasıl getireceğimi bir türlü bulamadım. Yani bu dönem hesabı yaparken aslında bir önceki dönemde alım yapılan miktar ve tutar lazım ama nasıl gelecek yapamadım.
Bunlara ne gerek var demeyin malmüdürlüğü ihale ile yapılan işlerde bir sürü form istiyor ve bu bilgilerde o formlarda yer alıyor ondan. Ayrıca ekte verdiğim excelde yapılan işler listesinde de görülüyor. her ödemede bir önceki dönem miktar ve ücret bilgileri yazılmalı. Programın tamamını yayınlamak istemedim. Sadece kodu yazıyorum. Bir beyin fırtınası yapsak sizce bir önceki dönem akaryakıt miktarını program nasıl çeker. Yardım ederseniz sevinirim. Kabaca o iş olmaz deseniz belki biraz daha hırs gelir başka çarelere bakarı. Şimdiden teşekkürler.
Yani;1-Toplam hakediş miktarı 30 lt, bu dönem 30 lt, bir önceki dönem 0 (Bu ilk alış).
2-Toplam hakediş miktarı 50 lt, bu dönem 20 lt, bir önceki dönem 30 lt(İkinci alış).
3-Toplam hakediş miktarı 80 lt, bu dönem 30 lt, bir önceki dönem 20 lt (Üçüncü alış)
Program toplam hakedişi getiriyor ama genele uygulamak gerektiğinde bir önceki dönemi nasıl getireceğimi bir türlü bulamadım. Yani bu dönem hesabı yaparken aslında bir önceki dönemde alım yapılan miktar ve tutar lazım ama nasıl gelecek yapamadım.
Bunlara ne gerek var demeyin malmüdürlüğü ihale ile yapılan işlerde bir sürü form istiyor ve bu bilgilerde o formlarda yer alıyor ondan. Ayrıca ekte verdiğim excelde yapılan işler listesinde de görülüyor. her ödemede bir önceki dönem miktar ve ücret bilgileri yazılmalı. Programın tamamını yayınlamak istemedim. Sadece kodu yazıyorum. Bir beyin fırtınası yapsak sizce bir önceki dönem akaryakıt miktarını program nasıl çeker. Yardım ederseniz sevinirim. Kabaca o iş olmaz deseniz belki biraz daha hırs gelir başka çarelere bakarı. Şimdiden teşekkürler.
PHP Kod:
Private Sub Pt_Benzin_Hakedis_Click()
Dim ba As Double 'Benzin Teklif Birim Fiatı
Dim bb As Double 'Benzin Toplam Hakediş Miktarı
Dim bc As Double 'Benzin Önceki Dönem Hakediş Miktarı
Dim bd As Double 'Benzin Bu Dönem Hakediş Miktarı
Dim be As Double 'Benzin Toplam Hakediş Tutarı
Dim bf As Double 'Benzin Önceki Dönem Hakediş Tutarı
Dim bg As Double 'Benzin Bu Dönem Hakediş Tutarı
Dim bha As Double 'Toplam Benzin Fiat Farkı Tutarı
Dim bhb As Double 'Önceki Dönem Benzin Fiat Farkı Tutarı
Dim bh As Double 'Benzin Fiat Farkı Tutarı
Dim bı As Double 'Benzin Ödenecek Hakediş Tutarı
Dim ma As Double 'Motorin Teklif Birim Fiatı
Dim mb As Double 'Motorin Toplam Hakediş Miktarı
Dim mc As Double 'Motorin Önceki Dönem Hakediş Miktarı
Dim md As Double 'Motorin Bu Dönem Hakediş Miktarı
Dim ne As Double 'Motorin Toplam Hakediş Tutarı
Dim mf As Double 'Motorin Önceki Dönem Hakediş Tutarı
Dim mg As Double 'Motorin Bu Dönem Hakediş Tutarı
Dim mha As Double 'Toplam Motorin Fiat Farkı Tutarı
Dim mhb As Double 'Önceki Dönem Motorin Fiat Farkı Tutarı
Dim mh As Double 'Motorin Fiat Farkı Tutarı
Dim mı As Double 'Motorin Ödenecek Hakediş Tutarı
'Dim k As Integer 'Kümülatif Toplam Hakediş Tutarı
'Dim n As Integer 'Kümülatif Önceki Dönem Hakediş Tutarı
'Dim m As Integer 'Kümülatif Bu Dönem Hakediş Tutarı
MsgBox "Lütfen Akaryakıt Teslim Tarihi Fiyatını Tümünü Giriniz", vbExclamation + vbOKOnly, "Hatırlatma!!!"
If IsNull(Alinan_Sira_No) Or IsNull(İhale_Tarih) Or IsNull(B_İhale_Tarih_Fiati) Or IsNull(M_İhale_Tarih_Fiati) Or IsNull(Sozlesme_Tarih) Or IsNull(B_Sozlesme_Tarih_Fiati) Or IsNull(M_Sozlesme_Tarih_Fiati) Or IsNull(Akaryakit_Sirketi) Or IsNull(Alinan_Benzin) Or IsNull(Alinan_Motorin) Then
MsgBox "Lütfen Zorunlu Alanları Boş Bırakmayınız", vbExclamation + vbOKOnly, "İşlem Hatası"
If IsNull(Me.ILKTARIH) Then MsgBox "Lütfen Raporun Başlanğıç Tarihini Giriniz.", 48, "Eksik Kayıt": Me.ILKTARIH.SetFocus: Exit Sub
If IsNull(Me.SONTARIH) Then MsgBox "Lütfen Raporun Bitiş Tarihini Giriniz.", 48, "Eksik Kayıt": Me.SONTARIH.SetFocus: Exit Sub
For Each Kontrol_edilen In Me
If Kontrol_edilen.Tag = "kilitli" Then
Kontrol_edilen.Enabled = True
End If
Next Kontrol_edilen
ILKTARIH.SetFocus
Else
On Error GoTo Hatayakala
DoCmd.OpenReport "Benzin_Fiat_Listesi", acViewPreview, "", "", acNormal
DoCmd.OpenReport "Motorin_Fiat_Listesi", acViewPreview, "", "", acNormal
DoCmd.OpenForm "Hakedis"
For Each Denetim In Me
If Denetim.Tag = "kilitli" Then
Denetim.Enabled = True
End If
Next Denetim
DoCmd.GoToRecord , , acNewRec
ba = Me.B_Sozlesme_Tarih_Fiati
ba = Round(ba, 3)
Form_Hakedis.Txt_B_Teklif_Birim_Fiatı = ba
'MsgBox "ba= " & ba, vbExclamation + vbOKOnly, "İşlem Hatası"
bb = DSum("[Benzin]", "Hakedis_Akaryakit_Sorgu")
bb = Round(bb, 2)
'MsgBox "bb= " & bb, vbExclamation + vbOKOnly, "İşlem Hatası"
Form_Hakedis.Txt_B_T_Hakedis_Miktarı = bb
bd = DSum("[Benzin]", "Hakedis_Akaryakit_Sorgu", "[Hakedis_Yapıldı]=0")
bd = Round(bd, 2)
'MsgBox "bd= " & bd, vbExclamation + vbOKOnly, "İşlem Hatası"
Form_Hakedis.Txt_B_D_Hakedis_Miktarı = bd
bc = bb - bd
'bc = DSum("[Benzin]", "Hakedis_Akaryakit_Sorgu", "[Hakedis_Yapıldı]='1'")
'MsgBox "bc= " & bc, vbExclamation + vbOKOnly, "İşlem Hatası"
Form_Hakedis.Txt_B_Ö_Hakedis_Miktarı = bc
be = ba * bb
be = Round(be, 2)
Form_Hakedis.Txt_B_T_Hakedis_Tutarı = be
'MsgBox "be= " & be, vbExclamation + vbOKOnly, "İşlem Hatası"
bf = ba * bc
bf = Round(bf, 2)
Form_Hakedis.Txt_B_Ö_Hakedis_Tutarı = bf
'MsgBox "bf= " & bf, vbExclamation + vbOKOnly, "İşlem Hatası"
bg = ba * bd
bg = Round(bg, 2)
Form_Hakedis.Txt_B_D_Hakedis_Tutarı = bg
'MsgBox "bg= " & bg, vbExclamation + vbOKOnly, "İşlem Hatası"
bha = DSum("[Fiat_Farkı]", "Srg_Benzin_Fiat_Listesi_Toplam")
bha = Round(bha, 2)
'MsgBox "bha= " & bha, vbExclamation + vbOKOnly, "İşlem Hatası"
bh = DSum("[Fiat_Farkı]", "Srg_Benzin_Fiat_Listesi", "[Hakedis_Yapıldı]=0")
bh = Round(bh, 2)
Form_Hakedis.Txt_B_Fiat_Farkı = bh
bhb = bha - bh
bhb = Round(bhb, 2)
Form_Hakedis.Txt_Ö_D_B_Fiat_Farkı = bhb
'MsgBox "bh= " & bh, vbExclamation + vbOKOnly, "İşlem Hatası"
bı = bg + bh
bı = Round(bı, 2)
Form_Hakedis.Txt_B_Toplam_Hakedis_Tutarı = bı
'MsgBox "bı= " & bı, vbExclamation + vbOKOnly, "İşlem Hatası"
ma = Me.M_Sozlesme_Tarih_Fiati
ma = Round(ma, 3)
Form_Hakedis.Txt_M_Teklif_Birim_Fiatı = ma
'MsgBox "ma= " & ma, vbExclamation + vbOKOnly, "İşlem Hatası"
mb = DSum("[Motorin]", "Hakedis_Akaryakit_Sorgu")
mb = Round(mb, 2)
'MsgBox "mb= " & mb, vbExclamation + vbOKOnly, "İşlem Hatası"
Form_Hakedis.Txt_M_T_Hakedis_Miktarı = mb
md = DSum("[Motorin]", "Hakedis_Akaryakit_Sorgu", "[Hakedis_Yapıldı]=0")
'MsgBox "md= " & md, vbExclamation + vbOKOnly, "İşlem Hatası"
md = Round(md, 2)
Form_Hakedis.Txt_M_D_Hakedis_Miktarı = md
mc = mb - md
'mc = DSum("[Motorin]", "Hakedis_Akaryakit_Sorgu", "[Hakedis_Yapıldı]='1'")
'MsgBox "mc= " & mc, vbExclamation + vbOKOnly, "İşlem Hatası"
mc = Round(mc, 2)
Form_Hakedis.Txt_M_Ö_Hakedis_Miktarı = mc
ne = ma * mb
ne = Round(ne, 2)
Form_Hakedis.Txt_M_T_Hakedis_Tutarı = ne
'MsgBox "ne= " & ne, vbExclamation + vbOKOnly, "İşlem Hatası"
mf = ma * mc
mf = Round(mf, 2)
Form_Hakedis.Txt_M_Ö_Hakedis_Tutarı = mf
'MsgBox "mf= " & mf, vbExclamation + vbOKOnly, "İşlem Hatası"
mg = ma * md
mg = Round(mg, 2)
Form_Hakedis.Txt_M_D_Hakedis_Tutarı = mg
'MsgBox "mg= " & mg, vbExclamation + vbOKOnly, "İşlem Hatası"
mha = DSum("[Fiat_Farkı]", "Srg_Motorin_Fiat_Listesi_Toplam")
mha = Round(mha, 2)
'MsgBox "mha= " & mha, vbExclamation + vbOKOnly, "İşlem Hatası"
mh = DSum("[Fiat_Farkı]", "Srg_Motorin_Fiat_Listesi", "[Hakedis_Yapıldı]=0")
mh = Round(mh, 2)
Form_Hakedis.Txt_M_Fiat_Farkı = mh
mhb = mha - mh
mhb = Round(mhb, 2)
Form_Hakedis.Txt_Ö_D_M_Fiat_Farkı = mhb
'MsgBox "mh= " & mh, vbExclamation + vbOKOnly, "İşlem Hatası"
mı = mg + mh
mı = Round(mı, 2)
Form_Hakedis.Txt_M_Toplam_Hakedis_Tutarı = mı
'MsgBox "bı= " & bı, vbExclamation + vbOKOnly, "İşlem Hatası"
Tutanak = " Müdürlüğümüz hizmetlerinde kullanılan araçların akaryakıt ihtiyaçlarını karşılamak için " & Me.[İhale_Tarih] & " tarihinde yapalan ihaleyi kazanan " & Me.[Akaryakıt_Sirketi] & " Akaryakıt istasyonundan " & Day((Me.[ILKTARIH])) & " - " & Me.SONTARIH & " tarihleri arasında " & md & " litre motorin, " & bd & " litre 95 Oktan kurşunsuz benzin hizmet araçlarımıza alınmış olup;"
Txt_Tutanak = Tutanak
DoCmd.OpenReport "Rpr_Muayene_Komisyon_Tutanağı", acViewPreview, "", "", acNormal
If Err.Number = 94 Then
Hatayakala:
MsgBox "Hakediş Hesaplanacak Akaryakıt Kullanılmamıştır", vbExclamation + vbOKOnly, "İşlem Hatası"
Exit Sub
Else
End If
End If
End Sub