Birde ben anlatmaya çalışayım sorularını ancak böylece iyice kafan karışabilir tabii. Kafanda mantığını oturttuğun zaman bir anda çözmüş olursun.
Alıntı:1 - Sağlıklı çalışan treeview örneğini bu formdan (https://accesstr.net) temin ettim. Bu da başka bilgisayar da hazırlandığını gösteriyor. Kendi bilgisayarımda açmak istediğimde ve referansları işaretlenmiş bir şekilde açılıyor. Bu da demektir ki referanslar, system32 klasörü içerisinde var.!!!
Hazır bir mdb'yi kendi bilgisayarınıza kopyaladığınızda, Access, işaretli olan referans dosyalarının olup olmadığına bakar, bu dosyalar varsa sorun olmaz.
Ancak her referans dosyasının sizin bilgisayarınızda system32 klasöründe olacağının garantisi yok. Ne demiştik, bu dosyalar access'e normalde olmayan ilave özellikler kazandırmak için oluşturulmuş kod kütüphaneleri.
Access kurulurken sadece kendi standart referanslarını sisteme yükler, Microsoft haricinde bir çok firma yeni özellikler kazandırmak için kendi referans dosyalarını yazıyor, bunları kullanmak istiyorsanız, bu dosyaları bulmak ve sisteme ve access'e tanıtmak zorundasınız.
Access olarak düşünmeyin, sisteminize herhangi başka bir programı kurarken bile (winzip, acrobat reader vs..), kuruluş esnasında bir çok dll, ocx dosyalarının sisteme kopyalandığını görebilirsiniz.
Dönelim Access'e, işaretli referans dosyaları bilgisayarda yoksa, bulamadığı için hata verir. Araçlar-Referanslar kısmına baktığınızda, işaretlenmiş olduğu halde bulamadığı referans dosyalarının başına MISSING:.... yazar. Kısaca bu dosya işaretlenmiş ama sizin bilgisayarınızda bulamıyorum demek bu.
Alıntı:2 - Sağlıklı çalışan treeview'in formunu, tablosunu ve kodlarını alıp başka *.mdb'de çalıştırmak istediğimde neden gerekli referanslar otomatik işaretlenmiyor. Sağlıklı çalışan yukarıdaki treeview'de referansların varolduğunu saymıştık ya.!!!
Bunu da şöyle tarif edeyim, bir evden başka bir eve taşınıyorsun. Evinde bir çok eşyan vardı, hepsini taşıdın. Yeni evde buzdolabını, TV'ni vs.., çalıştırmak istedin ama o da ne, çalışmadı. Senin sorun buna benziyor, yeni eve her şeyi taşıdım ama buzdolabı, tv neden çalışmıyor. Çalışmaz çünkü yeni evde elektrik yok. Gidip elektrik için başvuru yapıp, bağlatmalısın. Access'te de aynen böyle, referans dosyaları, mesela treeview çalıştırmak için gidip başvuru yapman gerekiyor.
Yeni evinde elektrik varsa, sorun olmaz buzdolabı ve tv çalışır, yoksa bağlatmalısın.
Referans dosyaların varsa programın çalışır, yoksa gidip bağlatmalısın.
Alıntı:3 - İşaretlenecek referans (system32 de ocx ve dll) velev ki bilgisayarımda yoksa; önceki sağlıklı çalışan treeview'in refereransları neden kendi bilgisayarımda varmış gibi otomatik olarak işaretlenmiş oluyor. Kaldı ki sonradan kullanılan ikinci yeni bir *.mdb veritabanında treeviewi çalıştırmak için yukarıda parantez içinde saydığım referansları system32 klasörü içine yüklemem, aynı zamanda işaretlemem gerekiyor.!!!
işaretli referans dosyaları bilgisayarda yoksa, bulamadığı için hata verir. Araçlar-Referanslar kısmına baktığınızda, işaretlenmiş olduğu halde bulamadığı referans dosyalarının başına MISSING:.... yazar. İşaretleri kaldırmaması lazım zaten, yoksa hangi referans dosyalarının gerekli olduğunu bulmak mümkün olmazdı.
Mesela sisteminizde bulunmayan bu tür referans dosyaları için forumumuzda bir arşiv var.
dll ve ocx arşivi
Bu sorunun devamının cevabı, elektrik olayı ile aynı. Yeni bir ev'de eşyalarını taşısan bile elektrik yok, başvurman gerekiyor.
Alıntı:Netice itibariyle burada bir çelişki meydana gelmiş olmuyor mu....!
- Olmayan bir şeyi varmış gibi neden işaretliyor. (Soru 1'e istinaden)
- Varsa neden otomatik işaretlemiyor. (madem treeview bu referanslar üzerinden çalışıyorsa) (Soru 2'ye istinaden)
Cevapları okursan, çelişki olmadığını göreceksin. Sadece biraz kafanız karışmış, o da normal. İlk başta çok karışık gelir. Ancak mantığı anladığınızda problem kafanızda çözülecektir.
Kopyaladığınız halde çalışmayan referans dosyaları için register olayı var, API kullanımı var vs.. onlara şimdi girmeyelim. Onlar bu işin daha ileri safhaları. Gerekli olursa yine anlatırız.