Yerel ağda ortak tablolar üzerinde çalıştığımız ve çalışanlarında hesaplarının olduğu kullanıcıadı-şifre ile giriş yaptığımız bir
Access dosyasında kimlerin çevrim içi - çevrimdışı olduğunu kararlı bir şekilde nasıl yapabiliriz?
"Kullanıcı Adı - Şifre" ile giriş olayı var ise muhtemelen kullanıcı bilgilerinin bulunduğu tablo vardır.
Tabloya yeni bir alan ekleyip, kullanıcı oturum açtığında "1", çıkış yaptığında da "0" yazdırabilir, çevrimiçi kullanıcıları "1"leri süzerek görebilirsiniz.
Sayın ozanakkaya dediginize benzer bir şey yaptım. Ancak program olağandışı kapanırsa tablodaki ilgili alan mesela 0(veya false veya hayır) değişmeden kalmış oluyor. ilgili kişi uzun süre programı calistirmazsa hep çevrim içi görünüyor. Başka ne çözümler getirebiliriz? İlgili kullanıcının giriş yapacağı bilgisayarın adından veya yerel ip sinden girisini cikisini gordurebilsek problem çözülür herhalde. Yani kişinin programdan olağan dışı cikisindan (programın kilitlenmesi, bilgisayarın kilitlenmesi, elektriklerin gitmesi vb) diğer kullanıcılar kişinin çevrim dışı olduğunu yerel ağ ip ile sorgulayarak ve ortak bir tabloda tutarak problem çözülebilir diye düşünüyorum fakat bunu nasıl yapacagimi bilemiyorum. Yada bir başka yol ne olabilir?
Belli bir zaman aralığında tıpkı ping gönderir gibi kontrol edebilirsiniz. Şöyle ki, yazdığınız bir kodla bu 1'lerin 0'a dönmesini, kullanıcıların da burası 0 ise tekrar 1'e dönüştürecek şekilde kayıt göndermelerini ve bu işi online olan tüm kullanıcıların belli bir zaman aralığında -mesela 15 dakikada bir- yapmasını sağlayabilirsiniz. "1" göndermeyenler otomatik olarak 0'da kalacaktır. Ancak bu senkronizasyonu iyi kurgulamalısınız. Çünkü 1'leri sıfıra dönüştürme işi yapıldığı anda kullanıcıların bunu farkedeceği ve hemen 1'e dönüştüreceği bir biçim olmalı. En mantıklısı belli bir nesneyi -mesela bir metin kutusunu-belli bir zaman aralığında kontrol ettirmektir. Bu arada geçen küçük zamanda tüm kullanıcılar deaktif görünecektir. Artık bu kurguyu nasıl yapacağınız size kalmış. Alın size fikir
Bu iş için form üzerinde
IIF kullanımını araştırabilirsiniz. Formdaki bir nesnenin
IIF ile kontrolu çokça kullandığım ve memnun olduğum bir yöntemdir.
Sayın mehmetdemiral teşekkür ederim. Yazdıklarınız minvalinde denemelerim sonuç verir inşiallah.
Her formda Timer kullanın. Bu Timer ile kullanıcının hareketlerini takip edersiniz. Belirli bir saniye geçince ana tablonuzda son aktif olduğu tarih ve zamanı güncelletin. Yönetici kendi makinesinde kimler aktif diye baktığı zaman ile son güncelleme zamanı arasındaki farkı aldırın. Mesela 10 saniye veya 3 dakika gibi bir zaman belirlersiniz. Buradan anlama imkanınız olur.