Skip to main content

AccessTr.neT


Vardiyeyi Random Atama

Vardiyeyi Random Atama

#9
(19/05/2017, 03:26)ozanakkaya yazdı: Kodu aşağıdaki ile değiştir

Dim EnBuyukKimlik As Integer

EnBuyukKimlik = DMax("Kimlik", "Calisanlar")


Do Until Len(Vardiya_1_Adi) > 1 And Len(Vardiya_2_Adi) > 1 And Len(Bakim_1_isim) > 1 And Len(isci_isim_1) > 1 And Len(isci_isim_2) > 1 And Len(yaz_isim) > 1 And Len(ciz_isim) > 1


   Do Until Len(Vardiya_1_Adi) > 1
       GRandom1 = Int((EnBuyukKimlik - 1 + 1) * Rnd + 1)
       Vardiya_1_Adi = Dlookup ("Calisan_Adi", "Calisanlar", "[Kimlik] = " & GRandom1 & " And [Teknik]= -1")
   Loop
   
   Do Until Len(Vardiya_2_Adi) > 1
       Vardiya_2_Adi = Nz(DLookup("Calisan_Adi", "Calisanlar", "[Teknik]= -1 And ([Calisan_Adi] not in('" & Vardiya_1_Adi & "'))"), "1")
       If Vardiya_2_Adi = "1" Then Exit Do
   Loop
   
   Do Until Len(Bakim_1_isim) > 1
       Bakim_1_isim = Nz(DLookup("Calisan_Adi", "Calisanlar", "[Bakim] = -1 And ([Calisan_Adi] not in('" & Vardiya_1_Adi & "','" & Vardiya_2_Adi & "'))"), "1")
       If Bakim_1_isim = "1" Then Exit Do
   Loop
   
   Do Until Len(isci_isim_1) > 1
       isci_isim_1 = Nz(DLookup("Calisan_Adi", "Calisanlar", "[isci] = -1 And ([Calisan_Adi] not in('" & Vardiya_1_Adi & "','" & Vardiya_2_Adi & "', '" & Bakim_1_isim & "'))"), "1")
       If isci_isim_1 = "1" Then Exit Do
   Loop
   
   Do Until Len(isci_isim_2) > 1
       isci_isim_2 = Nz(DLookup("Calisan_Adi", "Calisanlar", "[isci] = -1 And ([Calisan_Adi] not in('" & Vardiya_1_Adi & "','" & Vardiya_2_Adi & "', '" & Bakim_1_isim & "', '" & isci_isim_1 & "'))"), "1")
       If isci_isim_2 = "1" Then Exit Do
   Loop
   
   Do Until Len(yaz_isim) > 1
       yaz_isim = Nz(DLookup("Calisan_Adi", "Calisanlar", "[yazici] = -1 And ([Calisan_Adi] not in('" & Vardiya_1_Adi & "','" & Vardiya_2_Adi & "', '" & Bakim_1_isim & "', '" & isci_isim_1 & "', '" & isci_isim_2 & "'))"), "1")
       If yaz_isim = "1" Then Exit Do
   Loop
   
   Do Until Len(ciz_isim) > 1
       ciz_isim = Nz(DLookup("Calisan_Adi", "Calisanlar", "[cizici] = -1 And ([Calisan_Adi] not in('" & Vardiya_1_Adi & "','" & Vardiya_2_Adi & "', '" & Bakim_1_isim & "', '" & isci_isim_1 & "', '" & isci_isim_2 & "', '" & yaz_isim & "'))"), "1")
       If ciz_isim = "1" Then Exit Do
   Loop

Loop

Hocam öncelikle süper bir iş çıkarmışsın çok teşekkür ederim.Yalnız ben bu örenk üzerinden çalıştırdım ama başka bir örnekte anca "nz" fonksiyonunu kullanmadan yapabildim.Diğer örneğimde 33 masa var.

Ama hallettim.

Çok teşekkür ederim.Eline sağlık.

Öğrenğim tamamlandığında boş halini siteye atacağım.Hem başkalarınada faydası olur çünkü hiçbir sitede buna benzer bir örnek veya açıklama yok.

tekrar çok teşekkür ederim.
Not: NZ değişkeni hakkında bilgi verebilirsen sevinirim.

Giren arkadaşların anlaması için kodun kelime anlamını yazıyorum.Eğer hatalı anladıysam düzeltirsen sevinirim.

Enbüyükkimlik tamsayıdır.
Enbüyükkimlik formülü = en büyük çalışanların en büyük kimliği ile başlar.

Vardiya_1 - vardiya_2 ..... tümü 1 den büyüktür.

vardiya_1 1 den büyük olabilmesi için 

grandom1 tam sayısı enbüyükkimlik +1 eklenerek random bir rakam üretilmesi ile oluşur.

vardiya_1_adi kısmına calisan_adi nı calisanlar tablosundaki kimlik numaralarından grandom1 uygulayarak çıkan sonuçlardan teknik kısmı evet olanlardan birini getir.

........

diğerleride aynı..

sanırım dimi?
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da

Bu Konudaki Yorumlar
Vardiyeyi Random Atama - Yazar: blue_wall - 17/05/2017, 16:35
Cvp: Vardiyeyi Random Atama - Yazar: biberli33 - 18/05/2017, 11:25
Cvp: Vardiyeyi Random Atama - Yazar: blue_wall - 18/05/2017, 19:54
Cvp: Vardiyeyi Random Atama - Yazar: biberli33 - 19/05/2017, 08:49
Cvp: Vardiyeyi Random Atama - Yazar: ozanakkaya - 18/05/2017, 21:19
Cvp: Vardiyeyi Random Atama - Yazar: blue_wall - 19/05/2017, 00:31
Cvp: Vardiyeyi Random Atama - Yazar: blue_wall - 19/05/2017, 00:55
Cvp: Vardiyeyi Random Atama - Yazar: ozanakkaya - 19/05/2017, 03:26
Cvp: Vardiyeyi Random Atama - Yazar: blue_wall - 19/05/2017, 19:20
Cvp: Vardiyeyi Random Atama - Yazar: ozanakkaya - 20/05/2017, 02:55
Cvp: Vardiyeyi Random Atama - Yazar: blue_wall - 24/05/2017, 12:19
Cvp: Vardiyeyi Random Atama - Yazar: blue_wall - 30/05/2017, 15:58
Cvp: Vardiyeyi Random Atama - Yazar: ozanakkaya - 30/05/2017, 18:53
Cvp: Vardiyeyi Random Atama - Yazar: blue_wall - 30/05/2017, 19:17
Cvp: Vardiyeyi Random Atama - Yazar: blue_wall - 31/05/2017, 08:46