Vardiyeyi Random Atama

1 2 3
17/05/2017, 16:35

blue_wall

Merhaba,

Yine ben bir soru ile rahatsız edeceğim.Programı yazarken takıldıkça size yeni bir tablo üretip hem arkadaşlara faydalı olmasını hem sitemizde örenkler kalmasını sağlıyorum.Hemde ben öğreniyorum.

Ek'li veritabanında forma tıklandığında isimleri random atamasını istiyorum.Fakat tuşla veya herhangi bir şeyle değilim form açıldığında.
18/05/2017, 11:25

biberli33

Sayın BlueWall, muhtemelen örneğinize referans olabilecek içinde size faydalı olabilecek kodların bulunduğu bir VT ekliyorum. Umarım faydası olur. Kolay gelsin.
18/05/2017, 19:54

blue_wall

Hocam çok teşekkür ederim fakar sanırım bu örnekte raporlama için yol gösterilmiş.bu yol her bilgisayara uygun olmayabilir.Kodların sonucu Excel olarak çıkıyor ama exceli göremedim.Bu yüzden zahmet etmişsiniz ama benim verdiğim örenkteki olay rnd komutu kullanımı sanırım ama rnd komutu için tam bir açıklayıcı örenk bulamadım.Rnd'yi sürekli rakam ile oyun türü şeyler yazarken kullanmışlar.
18/05/2017, 21:19

ozanakkaya

Merhaba,

Formun geçerli olduğunda olayına aşağıdaki kodu ekle

Dim EnBuyukKimlik As Integer

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

'Int((EnBuyukKimlik - 1 + 1) * Rnd + 1) rastgele sayi

Do Until Len(Vardiya_1_Adi) <> 0
Vardiya_1_Adi = Dlookup ("Calisan_Adi", "Calisanlar", "[Kimlik] = " & Int((EnBuyukKimlik - 1 + 1) * Rnd + 1) & " And [Teknik] = -1")
Loop
' vardiya_1 getir

Do Until Len(Vardiya_2_Adi) <> 0 And Vardiya_1_Adi <> Vardiya_2_Adi
Vardiya_2_Adi = Dlookup ("Calisan_Adi", "Calisanlar", "[Kimlik] = " & Int((EnBuyukKimlik - 1 + 1) * Rnd + 1) & " And [Teknik] = -1")
Loop
' vardiya_2 getir

Do Until Len(Bakim_1_isim) <> 0
Bakim_1_isim = Dlookup ("Calisan_Adi", "Calisanlar", "[Kimlik] = " & Int((EnBuyukKimlik - 1 + 1) * Rnd + 1) & " And [Bakım] = -1")
Loop
'bakım getir

If Vardiya_1_Adi = Bakim_1_isim Or Vardiya_2_Adi = Bakim_1_isim Then
Do Until Vardiya_1_Adi <> Bakim_1_isim And Vardiya_2_Adi <> Bakim_1_isim
Bakim_1_isim = Dlookup ("Calisan_Adi", "Calisanlar", "[Kimlik] = " & Int((EnBuyukKimlik - 1 + 1) * Rnd + 1) & " And [Teknik] = -1")
Loop
End If
'bakım, vardiya 1 veya vardiya2 ile eşitse yenile

Kodlar arasına açıklama eklenmiştir.
19/05/2017, 00:31

blue_wall

Hocam çok sağolun bu komut tam anlamıyla istediğim komut fakat listede 30 çalışan var ve bölümlerde 3 ten fazlaysa if değerinin her variyantaını giriyorum ama yine aynı isimde olanlar çıkıyor 4 bölüm bile olsa.Orada sanırım bütün olasılıkları yazmak mı gerekiyor yoksa onunda kolay bir yolu var mı?

Not: Hocam süpersin
19/05/2017, 00:55

blue_wall

Düzeltilmiş hali ek'tedir.
1 2 3