Skip to main content

AccessTr.neT


Bilgi Çağırma

Bilgi Çağırma

Çözüldü #1
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.

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(, 2)
Form_Hakedis.Txt_B_Toplam_Hakedis_Tutarı = bı
'MsgBox "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(, 2)
Form_Hakedis.Txt_M_Toplam_Hakedis_Tutarı = mı
'MsgBox "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
.7z ÖDEME EVRAKLARI.7z (Dosya Boyutu: 10,74 KB | İndirme Sayısı: 8)
Cevapla
#2
Merhaba,

https://accesstr.net/konu-raporda-yuruyen-bakiye.html
https://accesstr.net/konu-yuruyen-bakiye--82346.html
https://accesstr.net/konu-sorguda-yuruye...orunu.html
https://accesstr.net/konu-yuruyen-bakiye.html
https://accesstr.net/konu-access-tablo-v...akiye.html
https://accesstr.net/konu-access-yuruyen...orunu.html

Bağlantılardaki konular yardımcı olmaz ise Access ile hazırladığınız örneği ekleyiniz.
Cevapla
#3
Örneklere bakıyorum ama sabaha kadar uyuyamadım sanırım burda kalacak program başım çok ağrıdı artık sadece bakıyorum. Sakin kafa ile ilerleyen bir zamanda bakayım. İlginize teşekkürler.
Cevapla
#4
Merhaba, yazdığım bağlantılarda anlatılanları uygulayamadıysanız lütfe bilgi veriniz.
Cevapla
#5
verdiğiniz linklerdeki bağlantıların benim sorum ile alakalı olup olmadığını çıkaramadım ne yazık ki. Programı yapan arkadaşta şuan olmadığından yapamadım. Ben accesten fazla anlamadığımdan yapamadım ne yazık ki. Bu şekilde kalacak sanırım ne yazık ki konuyu kapatalım.
Cevapla
#6
Sayın @270598, eklediğiniz örnek Excel belgesi, sorunuz Access sorusu. Benzeri çözümleri içeren konuları paylaşmak dışında yapabileceğim birşey yok malesef.
Tablo yapısının incelenmesi lazım. Uygulamanızdaki gerçek verileri silip sadece ilgili tablo, sorgu ve formu içeren örnek uygulamanızı ekleyiniz.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da