AccessTr.neT

Tam Versiyon: KOD DESTEĞİ - YILA GÖRE KONTROL
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Herkese Merhabalar,

Aşağıda Kod:
[Açılan_Kutu30], [Metin31], [Metin32], [Açılan_Kutu33] ve [Metin34] alanlarına yazılan bilgileri kontrol ederek;
[Tbl_Evrak_Girisi_Ana] tablosunda kayıt oluşturmaktadır.

Kayıt oluşturulurken de, [Metin31] ve [Metin32] alanlarına yazılan veiler (numaralar) arasındaki değerler kadar kayıt oluşturmakta ve bu numaraları [Muhabere_No] alanına yazmaktadır.

Buna göre;
Bir tablo içinde [Evrak_Dairesi] ve [Muhabere_no] alan değerleri aynı kayıtla yinelenemez. Örneklemek gerekirse;
[Evrak Dairesi]: "Bakırköy"     [Muhabere_No]:3                  olabilir.
[Evrak Dairesi]: "İstanbul"      [Muhabere_No]:3                  olabilir.
[Evrak Dairesi]: "Bakırköy"     [Muhabere_No]:3                  varolduğu için, bir daha olamaz.
l
Benim yapamadığım ise; Yıl kriteri eklemek.
Aynı takvim yılı içinde kullanılmamalı. Örneklemek gerekirse;

[Yıl]: 2015        [Evrak Dairesi]: "Bakırköy"     [Muhabere_No]:3           olabilmeli.
[Yıl]: 2015        [Evrak Dairesi]: "İstanbul"      [Muhabere_No]:3           olabilmeli.
[Yıl]: 2015        [Evrak Dairesi]: "Bakırköy"     [Muhabere_No]:3           olmamalı, çünkü kayıtlar arasında var.
[Yıl]: 2016        [Evrak Dairesi]: "Bakırköy"     [Muhabere_No]:3           olabilmeli.
[Yıl]: 2016        [Evrak Dairesi]: "İstanbul"      [Muhabere_No]:3           olabilmeli.

Sonuçta,
kod mu yazılmalı, ki ben bunu başaramadım.
ya da tablodan evdak dairesi, muhabere no ve yıl alanlarına aynı anda index koymam yeterli mi?
not: yıl alanı yok, sadece tarih alanı var. sanki kod yazılması gerekiyor diye düşünüyorum.

Zaman ayıran herkes şimdiden teşekkürler.


Kod:
Private Sub Komut36_Click()
Dim rs As Recordset
Dim rs2 As Recordset

Set rs = CurrentDb().OpenRecordset("Tbl_Evrak_Girisi_Ana")
Set rs2 = CurrentDb().OpenRecordset("SELECT MAX(Muhabere_No) AS ENBUYUK FROM Tbl_Evrak_Girisi_Ana WHERE Muhabere_No>=" & Val(Me![Metin31]) & " AND Muhabere_No <= " & Val(Me![Metin32]) & " AND Evrak_Dairesi = '" & Me![Açılan_Kutu30] & "'")

Text13 = rs2!ENBUYUK
If Not IsNull(Text13) Then
MsgBox "Bu aralıkta Muhabere Numarası var. En son kullanılan Evrak Dairesi ve Muhabere Numarası: " & Me![Açılan_Kutu30] & " " & rs2!ENBUYUK, vbCritical, "Sistem Kurye"
Metin31.Value = rs2!ENBUYUK + 1
Metin32.Value = rs2!ENBUYUK + 1
Exit Sub
End If

For I = Me![Metin31] To Me![Metin32]
   rs.AddNew
  rs!Muhabere_No = I
   rs!Evrak_Dairesi = Me![Açılan_Kutu30]
   rs!Gonderici = Me![Açılan_Kutu33]
   rs!Esas_No = "2015/##########"
   rs!Gidecegi_Yer = "##########"
   rs!Tarih = Me![Metin34]
   rs.Update
Next I
   rs.Close
   rs2.Close
   
'DoCmd.RunMacro "Show_All_Records_M"
   
   DoCmd.ShowAllRecords
   DoCmd.ApplyFilter "", "[Forms]![Frm_Evrak_Girisi_Ana]![Evrak_Dairesi]=[Forms]![Frm_Evrak_Girisi_Ana]![Açılan_Kutu30]And[Muhabere_No]>=Val([Forms]![Frm_Evrak_Girisi_Ana]![Metin31]) And[Muhabere_No]<=Val([Forms]![Frm_Evrak_Girisi_Ana]![Metin32])"

End Sub
Olayı tam anlamadım. Aynı kayıtların görünmemesini mi istiyorsunuz?
[Yıl]: [Evrak Dairesi]: [Muhabere_No]:
alanlarının üçünde de aynı anda aynı veri olmamalı.
3 ü de primary key gibi...
sayın aliyuzen,


bahsettiğiniz talebinize yönelik olarak,
her bir alan için kod satırlarında "and" şartları belirterek kriter kontrollü mükerrer kayıt engellemesi ile deneme yapabilirsiniz.

bunun için,
site içi aram asayfasında "Mükerrer Kayıt" ifadesini aratmak sureti ile,edineceğiniz çeşitli konulardaki bilgi ve örnek paylaşımlarını inceleyebilirsiniz.

ayrıca,
DLOOKUP ya da DCOUNT fonksiyonlarının kullanımlarını da değerlendirebilirsiniz.

son olarak,
örnek eklemeniz de,katılımcılar tarafından gerekli paylaşımların daha verimli sunulabilmesi için faydalı olacaktır.bilginize.

iyi çalışmalar,
saygılar.
sayın aliyuzen,


konu takibiniz açısından,hatırlatma anlamında;
konunuz ile ilgili son gelişme ne durumdadır.

şüphesiz,işlemleriniz tamamlanmış ve sorununuzu çözmüş de olabilirsiniz.
site içi aramalarınız neticesinde sitede yer alan konuları ve örnekleri incelemelerinizin sonucu ile bazı gelişimler elde etmiş de olabilirsiniz...bilgilendirmek ister misiniz lütfen.teşekkürler.bilginize.

iyi çalışmalar,
saygılar.
(22/07/2015, 15:43)atoz112 yazdı: [ -> ]sayın aliyuzen,


konu takibiniz açısından,hatırlatma anlamında;
konunuz ile ilgili son gelişme ne durumdadır.

şüphesiz,işlemleriniz tamamlanmış ve sorununuzu çözmüş de olabilirsiniz.
site içi aramalarınız neticesinde sitede yer alan konuları ve örnekleri incelemelerinizin sonucu ile bazı gelişimler elde etmiş de olabilirsiniz...bilgilendirmek ister misiniz lütfen.teşekkürler.bilginize.

iyi çalışmalar,
saygılar.

Merhaba,

Forumdan aldığım destekle, sorunumu giderdim. Teşekkür ederim.