AccessTr.neT

Tam Versiyon: Mükerrer kayıt uyarısında hata
Ş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
Herkese selamlar,
öncellikle hayatımızın her anında emeği bulunan öğretmenlerimize şükran ve minnetlerimi sunmak isterim.

Sorum şöyle; yapmış olduğum veri tabanında iki kritere bağlı olarak mükerrer kayıt ikazı almak istiyorum. Kodu yazdım ancak, kod düzenli olarak çalışmadı. Birkaç yol denedim fakat maalesef sonuç değişmedi. Kodu aşağıya yazıyorum.

Dim a,b As Integer
 
a = DCount("[FREID]", "TLSCVRFREKANSISLEMLERI", "[FREID]=" & Forms![Frm_VERICIYERI_FREKANS_TAHSISI]![VERICIYERITLSCVRFREKANSISLEMLERI].[Form]![FREID])

b = DCount("[VERYERID]", "TLSCVRFREKANSISLEMLERI", "[VERYERID]=" & Forms![Frm_VERICIYERI_FREKANS_TAHSISI]![VERICIYERITLSCVRFREKANSISLEMLERI].[Form]![VERYERID])

 
If Nz((a And d), 0)) > 0 Then

MsgBox Me.[FREKANS] & " numaralı kayıttan daha önce girilmiş."
Me.Undo

 
Else
 
Forms![Frm_VERICIYERI_FREKANS_TAHSISI]![VERICIYERITLSCVRFREKANSISLEMLERI].[Form]![TEMASFRE] = Me.FREKANS
 
Forms![Frm_VERICIYERI_FREKANS_TAHSISI]![VERICIYERITLSCVRFREKANSISLEMLERI].[Form]![FREDGRT] = Me.FREDEGER
 
Forms![Frm_VERICIYERI_FREKANS_TAHSISI]![VERICIYERITLSCVRFREKANSISLEMLERI].[Form]![FREKODT] = FREKODURET(Len(J - 1))
KULLANIM = -1
 
End If

Bu veri tabanında yapmak istediğim şey; frekans Listesinden seçtiğim frekansı FREID ve VERYERID kriterlerine bağlı olarak bir telsiz çevrimine atamak istiyorum. VERYERID; bir yerin otomatik sayısı. Ben VERYERID'si aynı olan yere FREID'si aynı olan frekanstan (örneğin 45.500) sadece bir defa atama yapılsın istiyorum. Ama VERYERID değiştiğinde, yani farklı bir yere aynı frekans (45.500) atanabilsin istiyorum.
Bir butonun Klik özelliğine yazdım bu kodu. Kırmızı ile yazdığım bölüm problemsiz çalışıyor, ancak üst taraf, kriterli olan yeri maalesef kararsızlık gösterdi, bazen çalıştı bazen çalışmadı.
Uzun süredir uğraşıyorum bu problemle. yardımcı olabilirseniz sevinirim. Şimdiden teşekkür ederim.

NE MUTLU TÜRK'ÜM DİYENE...
örnek uygulamayı görmeden yanıt bulmak zor.

If Nz((a And d), 0)) > 0 Then

yerine

If nz(a,0) and nz(b,0) > 0 Then

şeklinde deneyiniz.
(25/11/2014, 22:36)alpertunga65 yazdı: [ -> ]Herkese selamlar,
öncellikle hayatımızın her anında emeği bulunan öğretmenlerimize şükran ve minnetlerimi sunmak isterim.

Sorum şöyle; yapmış olduğum veri tabanında iki kritere bağlı olarak mükerrer kayıt ikazı almak istiyorum. Kodu yazdım ancak, kod düzenli olarak çalışmadı. Birkaç yol denedim fakat maalesef sonuç değişmedi. Kodu aşağıya yazıyorum.

Dim a,b As Integer
 
a = DCount("[FREID]", "TLSCVRFREKANSISLEMLERI", "[FREID]=" & Forms![Frm_VERICIYERI_FREKANS_TAHSISI]![VERICIYERITLSCVRFREKANSISLEMLERI].[Form]![FREID])

b = DCount("[VERYERID]", "TLSCVRFREKANSISLEMLERI", "[VERYERID]=" & Forms![Frm_VERICIYERI_FREKANS_TAHSISI]![VERICIYERITLSCVRFREKANSISLEMLERI].[Form]![VERYERID])

 
If Nz((a And d), 0)) > 0 Then

MsgBox Me.[FREKANS] & " numaralı kayıttan daha önce girilmiş."
Me.Undo

 
Else
 
Forms![Frm_VERICIYERI_FREKANS_TAHSISI]![VERICIYERITLSCVRFREKANSISLEMLERI].[Form]![TEMASFRE] = Me.FREKANS
 
Forms![Frm_VERICIYERI_FREKANS_TAHSISI]![VERICIYERITLSCVRFREKANSISLEMLERI].[Form]![FREDGRT] = Me.FREDEGER
 
Forms![Frm_VERICIYERI_FREKANS_TAHSISI]![VERICIYERITLSCVRFREKANSISLEMLERI].[Form]![FREKODT] = FREKODURET(Len(J - 1))
KULLANIM = -1
 
End If

Bu veri tabanında yapmak istediğim şey; frekans Listesinden seçtiğim frekansı FREID ve VERYERID kriterlerine bağlı olarak bir telsiz çevrimine atamak istiyorum. VERYERID; bir yerin otomatik sayısı. Ben VERYERID'si aynı olan yere FREID'si aynı olan frekanstan (örneğin 45.500) sadece bir defa atama yapılsın istiyorum. Ama VERYERID değiştiğinde, yani farklı bir yere aynı frekans (45.500) atanabilsin istiyorum.
Bir butonun Klik özelliğine yazdım bu kodu. Kırmızı ile yazdığım bölüm problemsiz çalışıyor, ancak üst taraf, kriterli olan yeri maalesef kararsızlık gösterdi, bazen çalıştı bazen çalışmadı.
Uzun süredir uğraşıyorum bu problemle. yardımcı olabilirseniz sevinirim. Şimdiden teşekkür ederim.

NE MUTLU TÜRK'ÜM DİYENE...

If Nz((a And d), 0)) > 0 Then yazan yeri
If Nz((a And b), 0)) > 0 Then

yazarak denermisiniz....
Bu kadar kısa zamanda cevapladığınız için teşekkürler. Sayın Power, ben "b" yerine yanlışlıkla "d" yazmışım...Ancak sayın ozanakkaya haklı, konuyla ilgili bir küçük örnek hazırlayıp siteye eklemeye karar verdim. Örneği hazırlayınca ekleyeceğim. Çok teşekkürler.
Tekrar selam,

sitedeki arkadaşların yapıcı uyarıları ile sorumu tekrar ediyorum ve konuyla ilgili bir de örnek veri tabanı ekliyorum.

Bu veri tabanında yaptığım şey,

örnek veri tabanında "Frm_VERICIYERI_FREKANS_TAHSISI" adlı form üzerinden önce UST BİRLİK ve daha sonra VERİCİ YERİ seçerek  seçilen verici yerindeki telsiz çevrimleri formda görüntüleniyor. bu formun altformunda yer alan TEMAS FREKANSI, ESAS FREKANS VE YEDEK FREKANS alanlarına tıkladığımda "Frm_VERICIYERI_FREKANS_ATAMA" formu açılıyor ve ben listeden bir frekansı tıklamak suretiyle seçiyorum. (FREKANS alanındaki değer). Aynı form üzerinde yer alan "Temas Frekansı Tahsisi", Esas Frekans Tahsisi" ve "Yedek Frekans Tahsisi" butonlarından herhangi birine bastığımda, seçtiğim frekans değeri  "Frm_VERICIYERI_FREKANS_TAHSISI" formu üzerindeki ilgili yere gidiyor. Temas, Esas ve yedek frekans değerleri için ben bu işlemi sırayla yapıyorum. Buraya kadar problem yok. Atamalar yapılıyor. Ancak, aynı "Verici Yeri"ndeki çevrimlere aynı frekansı atamamak gerekiyor. yani çevrimin adı ne olursa olsun, eğer aynı Verici Yerinde iseler aynı frekansı kullanamazlar. Diğer bir deyimle, bir frekans bir verici yerinde sadece ve sadece bir defa kullanılabilir. Eğer yanlışlıkla bu kurala aykırı olarak aynı frekans bir verici yerine birden fazla atanırsa mükerrer kayıt ikazı almak istiyorum. Burada ben FREID ve VERYERID alanlarını (sayısal değer) kriter olarak kullandım.
yazdığım aşağıdaki kod ise "Frm_VERICIYERI_FREKANS_ATAMA"  formunun üzerindeki "Temas Frekansı Tahsisi", Esas Frekans Tahsisi" ve "Yedek Frekans Tahsisi" butonlarının her birinin Tıklama özelliğinde. Ama maalesef problemli. Çok uğraştım, internette aradım ama başarılı olamadım bu konuda. yardımcı olabilirseniz, benim için AYA GİTMEK kadar önemli bir adım olacak...Teşekkürler...Saygılar...
Dim a,b As Integer
 
a = DCount("[FREID]", "TLSCVRFREKANSISLEMLERI", "[FREID]=" & Forms![Frm_VERICIYERI_FREKANS_TAHSISI]![VERICIYERITLSCVRFREKANSISLEMLERI].[Form]![FREID])

b = DCount("[VERYERID]", "TLSCVRFREKANSISLEMLERI", "[VERYERID]=" & Forms![Frm_VERICIYERI_FREKANS_TAHSISI]![VERICIYERITLSCVRFREKANSISLEMLERI].[Form]![VERYERID])

 
If Nz((a And d), 0)) > 0 Then

MsgBox Me.[FREKANS] & " numaralı kayıttan daha önce girilmiş."
Me.Undo

 
Else
 
Forms![Frm_VERICIYERI_FREKANS_TAHSISI]![VERICIYERITLSCVRFREKANSISLEMLERI].[Form]![TEMASFRE] = Me.FREKANS
 
Forms![Frm_VERICIYERI_FREKANS_TAHSISI]![VERICIYERITLSCVRFREKANSISLEMLERI].[Form]![FREDGRT] = Me.FREDEGER
 
Forms![Frm_VERICIYERI_FREKANS_TAHSISI]![VERICIYERITLSCVRFREKANSISLEMLERI].[Form]![FREKODT] = FREKODURET(Len(J - 1))
KULLANIM = -1
 
End If

"Frm_VERICIYERI_FREKANS_ATAMA"

Ne Mutlu Türk'üm Diyene...
İsteğiniz oldu mu emin değilim. Sorudan anladığım kadarıyla örnek uygulamanızı düzenledim.

İnceleyip bilgi veriniz.
Sayfalar: 1 2