Skip to main content

AccessTr.neT


İç içe döngü

İç içe döngü

Çözüldü #1
Herkese selam,

 
 Her şeyden önce,  bizleri dünyaya getiren, hayatını bizim için harcayan analarımızın, bacılarımızın ve bizimle yaşlanan eşlerimizin Dünya Kadınlar Gününü kutlarım.
 
  Yıllanmış şarap gibi çok uzun süredir üzerinde çalıştığım bir "Frekans Tahsis" veri tabanım var. Bu veri tabanını halen de kullanmaktayım, ancak zaman acaba şunu da yapabilir miyim diye bazı şeyleri eklemeye çalışıyorum. Veri tabanının bu hale gelmesinde sitemizin üstatlarının da büyük emeği ve yol göstericilikleri var. Önce veri tabanının işleyişi hakkında kısa bir bilgi vermek istiyorum.
  Veri tabanımda çeşitli yerlerde değişik birlikler tarafından kurulan telsiz çevrimlerini kaydediyorum ve bu telsiz çevrimlerine "VERYERID" ve "CVRID" kriterlerine göre; Tbl_Frekans adlı tablodan "TEMASFRE, ESASFRE ve YEDEKFRE" değerleri atıyorum. Kriter; aynı VERYERID'de veya aynı CVRID'de aynı frekans değeri (örneğin 35.500 MHz) kullanılamaz. Yanlışlıkla bu şekilde atama yapılırsa sistem ikaz ediyor ve atamayı yapmıyor. Bu işlemi elle ve her çevrim için teker teker yaptırıyorum. Buraya kadar tamamladım ve kullanıyorum. Ancak; çevrim sayısı yaklaşık 100-120 civarında olacak. Ben bu işlemi yukarıda belirttiğim kriterlere uygun olarak tek bir butonla tüm çevrimler için aynı anda yaptırmak istiyorum. Bunun için tüm çevrimleri listeleyebilen veya atama yapılacak çevrimleri seçtirebilen "Frm_Otomatik_Frekans_Tahsisi" adlı bir form yaptım. Bu form üzerinden "Frm_Otomatik_Frekans_Atama" adlı frekansların bulunduğu bir başka formu açıyorum. Bu formda da BLOK ADI, ALT FREKANS ve ÜST FREKANS seçerek atanacak frekans listesini belirliyorum. Formda bulunan "Frekans Tahsis Et" butonu ile tüm çevrimlere atama yapmak istiyorum.
  Bu maksatla butonun altına iç içe iki adet For Next döngüsü yazdım. Ancak, bilgim dahilinde tespit ettiğim kadarı ile Frekans döngüsü dönüyor ama ÇEVRİM döngüsü dönmüyor ve sadece EN SON Çevrime frekans ataması yapıyor. Birkaç yol denedim ama olmadı maalesef. Bu konuda yardım istiyorum. Nerde hata yaptım? veya nasıl bir yol izlemeliyim. Örnek bir veri tabanı ekledim.
 
Saygılarımla...
Ne Mutlu Türk'üm Diyene.
Cevapla
#2
İhtiyaten örneğinizi kaldırdım. İnceleyip çözümüne bakalım inşallah.
komşuda dülger mi var geliyor keser sesi,
ustalar konuşunca çıraklar keser sesi.
Cevapla
#3
sayın alpertunga65,

öncelikle ve özellikle,sayın Kur@l bey'in de tedbirli olma adına,örneğinize dair açıklamasında belirttikleri gibi,
lütfen bu içeriğe sahip uygulamanız ile ilgili konular açtığınızda;içeriğinde farazi bilgileri sadece birkaç kayıt olacak şekilde konularınıza eklemeye özen gösteriniz,buna riayet etmeye dikkat ediniz.çünkü,bu teferruat barındıran gizli kalması gereken içerikler hem ilgili yerlerden izni ya da bilgisi dışında yayınlanmamalı (kaldı ki,bu her durumda onay verilmeyecek bir önem taşımakta olduğundan buna mahal bile verilmez) hem de bunun ehemmiyeti bilgi güvenliği açısından göz ardı edilmemeli,hele ki,bu çalışmaların içerisinde yer alınıyorsa.

ayrıca,aşağıda bahsi geçen tavsiyelerde bulunarak,kullanım süreçleri nezdinde uygulamanızın daha verimli ve daha olumlu sonuçlar almanızı sağlamanıza imkan vereceğini belirtmek yerinde olacaktır kanısındayım.

TAVSİYELER
1) İsimlendirmelerde büyük harfler kullanmayınız.
2) Tablo,Sorgu,Form tanımlamalarında teferruatlı değil de,kısa ve öz isimlendirmelerde bulununuz.

son olarak,bahsettiğiniz talebinize yönelik olarak tekrar düzenlenmiş kod mevcuttur.inceleyebilirsiniz.
elbette ki,eğer yazdıklarınızdan doğru anlaşılabildiyse geçerlidir.bilgilendirmelerinize göre tekrar değerlendirme yapılacaktır.

Frm_Otomatik_Frekans_Atama adlı formunuzdaki Komut22 adlı butonun içeriğini aşağıdaki gibi değiştiriniz.
değiştirmeden önce,bir önceki eski içeriği etkisiz hale getiriniz ki,olası bir gereklilikte tekrar aktifleştirebilesiniz.bilginize.

Kod:
Private Sub Komut22_Click()
Dim a, b, c, d, e, f, g, h, k, i As Integer

For e = f To g Step 1

f = Forms![Frm_Otomatik_Frekans_Tahsisi]![ilkCVR]
g = Forms![Frm_Otomatik_Frekans_Tahsisi]![sonCVR]
k = BLOKSEC.Value

i = FREKANSs.Value
d = ALTFRESEC.Value
h = USTFRESEC.Value

For i = d To h Step 1

a = DCount("[FREID]", "Tbl_TlsCvrFrekansIslemleri", "[VERYERID]=" & [Forms]![Frm_Otomatik_Frekans_Tahsisi]![kontrolveryerid] & " And [TEMASFRE]='" & Me.FREKANSs & "' Or [ESASFRE]='" & Me.FREKANSs & "'  Or [YEDEKFRE]='" & Me.FREKANSs & "'")
b = DCount("[FREID]", "Tbl_TlsCvrFrekansIslemleri", "[VERYERID]=" & [Forms]![Frm_Otomatik_Frekans_Tahsisi]![kontrolveryerid] & " And [ESASFRE]='" & Me.FREKANSs & "' Or [TEMASFRE]='" & Me.FREKANSs & "'  Or [YEDEKFRE]='" & Me.FREKANSs & "'")
c = DCount("[FREID]", "Tbl_TlsCvrFrekansIslemleri", "[VERYERID]=" & [Forms]![Frm_Otomatik_Frekans_Tahsisi]![kontrolveryerid] & " And [YEDEKFRE]='" & Me.FREKANSs & "' Or [ESASFRE]='" & Me.FREKANSs & "'  Or [TEMASFRE]='" & Me.FREKANSs & "'")


If a > 0 And b > 0 And c > 0 Then
Me.Undo
DoCmd.GoToRecord , , acNext

Else

Forms![Frm_Otomatik_Frekans_Tahsisi]![AltForm_OtoFrekansIslemleri].[Form]![TEMASFRE] = Me.FREKANSs
Forms![Frm_Otomatik_Frekans_Tahsisi]![AltForm_OtoFrekansIslemleri].[Form]![FREDGRT] = Me.FREDEGER
Forms![Frm_Otomatik_Frekans_Tahsisi]![AltForm_OtoFrekansIslemleri].[Form]![FREKODT] = FREKODURET(Len(J - 1))

Forms![Frm_Otomatik_Frekans_Tahsisi]![AltForm_OtoFrekansIslemleri].[Form]![ESASFRE] = Me.FREKANSs
Forms![Frm_Otomatik_Frekans_Tahsisi]![AltForm_OtoFrekansIslemleri].[Form]![ESASFREDGR] = Me.FREDEGER
Forms![Frm_Otomatik_Frekans_Tahsisi]![AltForm_OtoFrekansIslemleri].[Form]![ESASFREKOD] = FREKODURET(Len(J - 1))

Forms![Frm_Otomatik_Frekans_Tahsisi]![AltForm_OtoFrekansIslemleri].[Form]![YEDEKFRE] = Me.FREKANSs
Forms![Frm_Otomatik_Frekans_Tahsisi]![AltForm_OtoFrekansIslemleri].[Form]![YEDEKFREDGR] = Me.FREDEGER
Forms![Frm_Otomatik_Frekans_Tahsisi]![AltForm_OtoFrekansIslemleri].[Form]![YEDEKFREKOD] = FREKODURET(Len(J - 1))
KULLANIM = -1

End If
Next i
Next e
DoCmd.GoToRecord , , acNext
End Sub

iyi çalışmalar,saygılar.
Herkes, kendisinin AR-GE'cisidir...


Konulara eklenen Uygulama içeriğine yönelik Tavsiyeler
Alt Form Denetim Değerlerine ulaşma ve Alt Form Güncelleme
Kapatırken Düzenle (Compact On Close) Seçeneğinin İşaretlenmesi Hakkında
Cevapla
#4
sayın alpertunga65,


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

yapılan bilgi paylaşımı soruna bir çözüm sağlayabildi mi.

şüphesiz,işlemleriniz tamamlanmış ve sorununuzu çözmüş de olabilirsiniz.
bilgilendirmek ister misiniz lütfen.teşekkürler.bilginize.

iyi çalışmalar,
saygılar.
Herkes, kendisinin AR-GE'cisidir...


Konulara eklenen Uygulama içeriğine yönelik Tavsiyeler
Alt Form Denetim Değerlerine ulaşma ve Alt Form Güncelleme
Kapatırken Düzenle (Compact On Close) Seçeneğinin İşaretlenmesi Hakkında
Cevapla
#5
(11/03/2015, 11:22)atoz112 yazdı: sayın alpertunga65,


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

yapılan bilgi paylaşımı soruna bir çözüm sağlayabildi mi.

şüphesiz,işlemleriniz tamamlanmış ve sorununuzu çözmüş de olabilirsiniz.
bilgilendirmek ister misiniz lütfen.teşekkürler.bilginize.

iyi çalışmalar,
saygılar.

Sayın atoz112,
yazmış olduğunuz kodu ancak bugün deneyebildim. Herhangi bir hata kodu vermedi. Ancak, bu kod da en son çevrime ve tüm alanlara (TEMAS, ESAS ve YEDEK) aynı frekansı tahsis ediyor.

saygılarımla...
Ne Mutlu Türk'üm Diyene.
Cevapla
#6
sayın alpertunga65,

Alıntı:...tüm alanlara (TEMAS, ESAS ve YEDEK) aynı frekansı tahsis ediyor...

ifadenize yönelik olarak,şu açıklamanın yapılması uygun görülmüştür.

ilgili formunuzun kod sayfasında yer alan DCount fonksiyonunun kullanılışı incelendiğinde,bu fonksiyonun kalıbı için izin kendi belirlemenizden dolayı aynı frekansın tahsis etmesi doğal çünkü;kodlarınızda atanan alan eşitliklerinin tanımlanmasında aynı ifade olarak FREKANSs şeklinde belirtilmiş.dolayısı ile de;TEMAS/ESAS ve YEDEK değerleri olarak aynı frekans değerleri gelmektedir,istenen kriterler neticesinde.

DCount kalıbındaki "and" ve "or" kullanımlarında yer alan tanımlamaların tekrar gözden geçirip incelemenizde fayda var kanısındayım,bu açıklamanız neticesinde.

elbette eğer ki bu açıklamanız doğru yorumlanmış ise,bu izah gerekliliği geçerlilik gösterir.bilginize.

iyi çalışmalar,
saygılar.
Herkes, kendisinin AR-GE'cisidir...


Konulara eklenen Uygulama içeriğine yönelik Tavsiyeler
Alt Form Denetim Değerlerine ulaşma ve Alt Form Güncelleme
Kapatırken Düzenle (Compact On Close) Seçeneğinin İşaretlenmesi Hakkında
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task