AccessTr.neT

Tam Versiyon: Vardiyeyi Random Atama
Ş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 3
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.
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.
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.
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.
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 Img-grin
Düzeltilmiş hali ek'tedir.
Sayfalar: 1 2 3