selam ve saygılar,
Acces'te çok ağır komutlar veren kullanıcılar bilirler. 5 10 dakika sürecek belki daha uzun bir işlem çalıştırdığınızda ( muhabeleştirme, yarım kalan kayıt tamirleri vs ) araya ikinci bir komut veremezsiniz. Önce ilk kodu tamamlar sonra diğerine geçer.
Bunu yapabilen profosyonel proglamlar mevcut.
Bir süre araştırdım ama yanıt bulamadım.
Acces'te iki kodu aynı anda çalıştırıp, sonuç alabilmenin bir yolu var mıdır.
perişan ettiniz beni sayın alpeki
Kod bloğunuzun bir yerinde aşağıdaki komutu ekleyin programınız diğer işlemleri yapmaya devam edecektir.
Doevents
teşekkür ederim sn Kural. Büyük bir sorunuma çare olmuş oldunuz
İşin aslı MultiThread ise zaten
Access saf bir "çok kanallı çalışma" imkanına sahip değil ve muhtemelen hiç bir zamanda olmayacak. Eğer olacak olursa zaten çok farklı bir kulvara geçmiş olur ki çoğumuzun işine gelmeyecektir.
Acaba yanlışmı biliyorum dedim ve bir test uygulaması hazırladım. Gözümden kaçan bir şey olmuşsa uyarılarınızı bekliyorum.
İki tane liste kutusu var ve hemen altlarında da birer buton var. Her buton For döngüsü ile 1 den başlayarak 5000 e kadar bir döngüye giriyor ve her sayı liste kutusuna ekleniyor. Burada şunu bekliyoruz:
"Birinci liste kutusunda butona basıp 1 den 5000 e kadar olan sayıları listeye ekler iken aynı anda ikinci bir iş yapıp yapmayacağını test ediyoruz. Birinci butona bastıktan bir süre sonra ikinci butona basınca ikinci liste kutusuna sayılar eklenmeye başlamalı ancak birinci liste kutusuna sayı ekleme işlemi yarım kalmamalı."
Testimizi uygulamaya başladık. Birinci kutuya bastık ve sayılar listeye eklenmeye başladı. 5-10 saniye sonra ikinci butona basıyoruz ancak beklentimiz gerçekleşmiyor. Birinci liste kutusuna sayı ekleme olayı sona ermiş olduğunu görüyoruz.
Kodlar içinde DoEvents komutunu kullandık ancak bize sadece programın kilitlenmemesi açısından yardımcı oldu. DoEvents kodlarını kaldırıp testi tekrarladığımızda ise farkı göreceksinizdir.
Yine
Vba ile MultiThread işlemler için
şu yazıdan da faydalanabilirsiniz.