AccessTr.neT

Tam Versiyon: Fatura no hakkında
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2 3
Sayın mehmetdemiral;

makbuz lazer adlı rapor çalıştırılıp rapor alındıktan sonra kapatıldığında sırası ile makbuz ekle ve ödeme sil surguları çalışıyor.

Ödemeleri siliyorum çünkü aslolan serbest meslek makbuzunun ödeme anında kesilip müşteriye verilmesidir. bu olayda hiç bir şekilde cari hesap (Borç-alacak) mantığı işlemez. Forumda üstatlarımdan öğrendiğim şeylerden biri de gereksiz verilerden kaçınıp veri tabanını şişirmemek. Kısacası ödemeler tablosundaki kayıtların ömrü ilgili makbuzun kesilmesi ile sona eriyor. Neyse buralara takılmayalım.

Sorunum şu ki Makbuz lazer raporunda yer alan MakbuzNo değerini (bu raporda oluşan) makbuzlar tablosuna nasıl kaydederim.

Verdiğiniz örneği inceliyorum. İlginize teşekkürler.
Sn mantars alternatif çözüm birleştirme sorgusu yapabilirsiniz. Saygılar...
Alıntı:Forumda üstatlarımdan öğrendiğim şeylerden biri de gereksiz verilerden kaçınıp veri tabanını şişirmemek. Kısacası ödemeler tablosundaki kayıtların ömrü ilgili makbuzun kesilmesi ile sona eriyor. Neyse buralara takılmayalım.

Sayın mantars, bu sözleriniz için yorum yok diyebilirim sadece. Sonuçta sizin programınız, siz hazırlıyorsunuz. Ama ben halen programınızın çalışma mantığı ile ilgili cevabı bekliyorum. Yukarda madde madde yazdığım çalışma sistemi, doğru mu? Yoksa yanlış mı çalışıyorum. Çok basitleştirerek anlatır mısınız. İnanın gündüzleri işyerinde o kadar yoğun teknik servis işiyle uğraşıyorum ki, akşam kafayı toplamak zor. Bir de evde net yok. Şu anda net olan bir yerde iftardayım, burda da Access yokImg-grin) Şansın bu kadarı... Siz tane tane, formların adlarıyla şu işi bir gösterinm bana. Yaşlı adam olunca biraz geç anlıyor insanImg-grin) Kusura bakmayın...
Bunları şunun için yazıyorum: Siz "makbuz lazer adlı rapor çalıştırılıp rapor alındıktan sonra kapatıldığında sırası ile makbuz ekle ve ödeme sil surguları çalışıyor." demişsiniz ya, ben o raporu direk açamıyorum. Tarih aralığı falan istiyor ama girilemiyor.
Sayın mehmetdemiral;

ikinci örnek dosyamdaki uygulamamda sadece sorunumun çözülmesi için gerekli olduğuna inandığım form, rapor vb. bulunduğu için çalışma mantığını anlamamış olabilirsiniz.

Birinci mesajımdaki örnek üzerinden anlatayım o halde.

1) Başlangıçta açılan denetim formu aracılığı ile Serbest meslek mensubu bilgileri (Faturayı kesecek olan firma gibi algılayabiliriz) girilir ve form kapatılır.
2) Kanuni oran bilgileri kontrol edilir ve varsa düzeltme yapılarak o form da kapatılır.
3) Müşteri işlemleri bölümünden müşteri kaydı yapılır. veya üzerinde bir değişiklik varsa yapılır.
4) Müşteri işlemleri bölümünde yer alan müşteri ödeme taahüdü girişi bölümünden ilgili müşterilerin ilgili ödeme bilgileri kaydedilir. (Buradaki ödeme bilgileri müşterinin o ödemesini yaptığını deyil ödeme taahüdünde bulunduğunu gösterir. Bu yüzden ödeme bilgileri girişinde tahsil edildi onay kutusu bulunmakta.)
5) Fatura (Makbuz) kesileceği zaman ana menüden makbuz kesme işlemleri bölümüne girilir. Kesilecek makbuz belirle bölümünden Makbuz belirle formu çalıştırılır. bu form tahsil edilmeyenler sorgusu aracılığı ile ödemeler tablosunda tahsil edildi onay kutusu işaretli olmayan ve verilen tarih aralığındaki ödeme kayıtlarını getirir. makbuz belirle formu açıldığı halde tarih alanlarına girilemiyor ise MSCOMCT2.OCX ile ilgili kayıt işlemi yapılır. (Ben de bu kayıt işlemini bu forumdan öğrendim.) Faturası kesilecek ödemelerin tahsil edildi onay kutuları işaretlenerek bu form kapatılır.
6) Lazer yazıcıdan makbuz kesme bölümüne girilir. Bu bölüme girilince makbuz lazer raporu açılır.
6.1) Makbuz lazer raporunun açıldığında olayına bağlı olarak RaporTarihAraligi parametre formu aracılığı ile ödemelersorgu sorgusuna dayalı olarak verilen iki tarih arasındaki ödeme bilgileri, müşteri bilgileri vb. faturanın hesaplanması ve kesimi ile ilgili bilgilere dayanarak kesilecek faturalar (makbuzlar) raporlanır.
6.2) Makbuz lazer raporunun kapandığında olayına bağlı olarak makbuz ekle makrosu öncelikle makbuz ekle ekleme sorgusunu çalıştırır. Bu sorgu ilgili rapordaki bilgileri makbuzlar tablosuna ekler. (sorunum olan ilgili makbuz numarası alanı hariç)
6.3) Makbuz lazer raporunun kapandığında olayına bağlı olarak makbuz ekle makrosu ödeme sil silme sorgusunu çalıştırır. Bu sorgu ilgili rapordaki bilgileri ödemeler tablosundan siler.

Programın işleyişi kısaca bu hocam. Bu arada programcılık mantığı yönünden sizlere ters gelen hatalarım muhakkak vardır, affola.

Tüm hocalarıma allah sabırlar versin. Çünkü bu mesajları okumak bile önemli bir vakit ayırmadır, kafa patlatmaktır, emek vermektir. bunun için paylaşımda bulunan tüm arkadaşlara teşekkürler.
MakbuzLazer isimli rapora Kayitno alanı ekle ve raporun kapandığında olayına aşağıdaki (makroyu iptal et) kodu yaz

Kod:
Private Sub Report_Close()
DoCmd.OpenQuery "Makbuz Ekle", acViewNormal, acAdd
DoCmd.OpenQuery "Ödeme Sil", acViewNormal, acEdit
DoCmd.Close acQuery, "Makbuz Ekle"
strSQL = "SELECT * FROM Makbuzlar "
Set rstkayit = New ADODB.Recordset
rstkayit.Open strSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
With rstkayit
.Find "[MüsteriNo]=" & Me.KayitNo
If Not rstkayit.EOF Then
.Fields("MakbuzNo") = Me.MakbuzNo
.Update
End If
End With
strSQL = "SELECT * FROM SonNumara "
Set rsxkayit = New ADODB.Recordset
rsxkayit.Open strSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
With rsxkayit
.AddNew
.Fields("SonMakbuzNo") = Me.MakbuzNo
.Update
End With
End Sub

Sayın sledgeab

verdiğiniz kodları

Private Sub Report_Close()
DoCmd.OpenQuery "Makbuz Ekle", acViewNormal, acAdd
DoCmd.OpenQuery "Ödeme Sil", acViewNormal, acEdit
DoCmd.Close acQuery, "Makbuz Ekle"

strSQL = "SELECT * FROM Makbuzlar "
Set rstkayit = New ADODB.Recordset
rstkayit.Open strSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic

artma = 0
Do While Not rstkayit.EOF
With rstkayit
.Find "[MakbuzNo]= null"
If Not rstkayit.EOF Then
artma = artma + 1
FatNo = SonMakbuzNo + artma
.Fields("MakbuzNo") = FatNo
.Update
End If
End With
Loop

strSQL = "SELECT * FROM SonNumara "
Set rsxkayit = New ADODB.Recordset
rsxkayit.Open strSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic

With rsxkayit
.Fields("SonMakbuzNo") = FatNo
.Update

End With

End Sub

Şeklinde değiştirerek tam isteğime ulaştım. Ancak bu kezde sorgu kullanıcı tarafından iptal edilirse hata mesajı vererek çalışmayı kesiyor. Bunu engellemek için ne yapabilirim? Saygılar.
Sayfalar: 1 2 3