aynı anda iki farklı fonkisyon çalıştırılabilir mi

1 2
18/01/2013, 12:37

fatih karagöl

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.
18/01/2013, 13:33

alpeki99

Yanıtı ben vereyim ile bir yolu yok.
18/01/2013, 13:46

fatih karagöl

perişan ettiniz beni sayın alpeki
18/01/2013, 19:02

Kur@l

Kod bloğunuzun bir yerinde aşağıdaki komutu ekleyin programınız diğer işlemleri yapmaya devam edecektir.
Doevents
18/01/2013, 19:32

fatih karagöl

teşekkür ederim sn Kural. Büyük bir sorunuma çare olmuş oldunuz
18/01/2013, 23:36

alpeki99

İş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.
1 2