Form Güncelleme

1 2
03/04/2015, 17:14

kübrashn

Merhaba arkadaşlar hayırlı cumalar.
Tanım: Şöyle bir problemim var; Bir kısmı hala yapım aşamasında olan Formumu Ağ da "Orijinal" isimli dosyama yerleştirdim. Daha sonra "çekim" isimli dosyama da veri tabanını paylaştırdım. Kullanıcılarda Çekim isimli dosyamdan tutup masa üstüne atmak kaydı ile programı çalıştırıp programa giriş yapıyorlar veri girebiliyorlar. Buraya kadar sıkıntı yok her şey normal çalışıyor.
Problem: Şöyle bir problem ile karşılaştım ben orijinal klasörümdeki veya Çekim klasöründeki uygulamam içinde örneğin form veya rapor üzerinde bir değişiklik yaptığımda kullanıcılar masa üstündeki kısa yollarından basarak uygulamayı çalıştırdığında yapılan hiç bir değişiklik gözükmüyor. Bende o zaman diyorum ki çekim klasöründen yeniden kısa yol atın. o zaman güncellemeler gözüküyor.
Çözüm için veya bir görüşünüz var mı? veya Ağda çalışan arkadaşlar bu işi nasıl çözüyor? Veya her şeyin normal olduğunu düşündüğüm bir yerde yanlış mı yapıyorum.
 
03/04/2015, 21:07

atoz112

sayın kübrashn,

bahsettiğiniz talebinize yönelik olarak aşağıdaki açıklamaların yeterli olacağı kanısındayım.

kullanıcıların kullandıkları uygulama içerisine yeni bir form oluşturunuz (örneğin;adı Kontrol olsun) ve formun içerisine de
bir buton ekleyip Tıklandığında Olay Yordamına aşağıdaki kodu dahil ediniz.

Kod:
DoCmd.RunCommand acCmdSaveRecord
DoCmd.SetWarnings False
DoCmd.DeleteObject acForm, "Form1"
DoCmd.SetWarnings True

DoCmd.TransferDatabase acImport, "Microsoft Access", "D:\Yeni_Tasarımın_Yapıldığı_Uygulamanın_Yer_Aldığı_KlasörYolu\Form_Tasarımı_değişen_Access_Uygulamasının_adı.mdb", acForm, "Form1", "Form1"

DoCmd.OpenForm "Form1", acNormal
DoCmd.Close acForm, "Kontrol"

yukarıdaki kodların açıklamaları ise şöyledir:

a)
Kod:
DoCmd.RunCommand acCmdSaveRecord
DoCmd.SetWarnings False
DoCmd.DeleteObject acForm, "Form1"
DoCmd.SetWarnings True

ile,daha önce mevcut bulunan fakat yeni tasarımı yapılan formun uygulamadan silinmesi sağlanıyor

b)
Kod:
DoCmd.TransferDatabase acImport, "Microsoft Access", "D:\Yeni_Tasarımın_Yapıldığı_Uygulamanın_Yer_Aldığı_KlasörYolu\Form_Tasarımı_değişen_Access_Uygulamasının_adı.mdb", acForm, "Form1", "Form1"

Yeni tasarımın yapıldığı uygulamanın yer aldığı klasörü ve uygulamanın adını yazıyorsunuz.
Form1 tanımları,her iki uygulamada da tasarımı yenilenen ve değiştirilecek olan formların adı dır.

ilk Form1 kaynak uygulamadaki formun adı,
ikinci Form1 ise hedef uygulamadaki formun adı.

c)
Kod:
DoCmd.OpenForm "Form1", acNormal
DoCmd.Close acForm, "Kontrol"

Kontrol adlı form kapatılırken,yeni hali ile Form1 adlı form açılacaktır.bilginize...iyi çalışmalar,saygılar.
03/04/2015, 22:15

kübrashn

Sayın Atoz çok teşekkürler ilginiz için. İnanın beni en çok sıkıntıya sokan iki sorundan birisi bu inşallah çözümünüz işe yarar. Hafta sonu kurum kapalı olduğu için deneme imkanım olmaz. Yine de D sürücüne atıp C yede kısayol yapıp denemeye çalışacağım. Sonucu en geç pazartesi akşam yazarım. Çok teşekkürler yardımınız için. Hayırlı Geceler
03/04/2015, 22:50

kübrashn

Sayın Atoz hemen denemeyi yaptım çok güzel harika mükemmel valla çalıştı. Form kendini güncelledi. Dayanamadım valla hemen yazayım dedim. Sorgu ve raporlarda nasıl bir yol izlemeliyim.
Ya valla nasıl sevindim bilemezsiniz. Her gün 7 kullanıcıya bunu değiştirdim bir daha indirin demekten bıkmıştım. Allah'ta Sizin işinizi kolaylaştırsın.
04/04/2015, 11:30

atoz112

sayın kübrashn,

bahsettiğiniz bilgi talebinize yönelik olarak,
Docmd TransferDatabase komut kalıbı kullanımı hakkında,aşağıdaki paylaşımların yapılması yeterli görülmüştür.

Docmd TransferDatabase Method (Veritabanı Taşıma Yöntemi)

KULLANIM KALIBI

DoCmd.TransferDatabase(TransferType, DatabaseType, DatabaseName, ObjectType, Source, Destination)
(DoCmd.TransferDatabase(Taşıma Türü, Veritabanı Türü, Veritabanı yolu ve Adı, Taşınacak Nesne Türü, Kaynak Nesne Adı, Hedef Nesne Adı))

TransferType (Taşıma Türü)

Taşıma Türü olarak hangi kullanım gerekli ise,tercih edildiği tür adı belirlenir.Taşıma Türleri;

acExport (Dışa aktarma)
acImport (İçe aktarma)
acLink

DatabaseType (Veritabanı Türü)

Nesne taşımalarının hangi veritabanına göre olacağının belirlenmesi içindir.Veritabanı Türleri;

Microsoft Access
dBase III
dBase IV
dBase 5.0
Paradox 3.x
Paradox 4.x
Paradox 5.x
Paradox 7.x
ODBC Databases
WSS

ObjectType (Taşınacak Nesne Türü)

Veritabanları arasında hangi nesnelerin taşınacağını belirlemek içindir.Taşınacak Nesne Türleri;

acDataAccessPage 
acDefault 
acDiagram 
acForm 
acFunction 
acMacro 
acModule 
acQuery 
acReport 
acServerView 
acStoredProcedure 
acTable

KULLANIM ÖRNEKLERİ


(NOT:acImport Taşıma Türü için,KULLANICILARIN UYGULAMASI ÜZERİNDEN ASIL VERİTABANINDAN NESNE ALMAYA YÖNELİK ÖRNEKLERDİR)

FORM TAŞIMA
Kod:
DoCmd.TransferDatabase acImport, "Microsoft Access", "D:\Nesne_Tasima_Deneme\Deneme.mdb", acForm, "Form1", "Form1"

TABLO TAŞIMA
Kod:
DoCmd.TransferDatabase acImport, "Microsoft Access", "D:\Nesne_Tasima_Deneme\Deneme.mdb", acTable, "Tablo1", "Tablo1"

SORGU TAŞIMA
Kod:
DoCmd.TransferDatabase acImport, "Microsoft Access", "D:\Nesne_Tasima_Deneme\Deneme.mdb", acQuery, "Sorgu1", "Sorgu1"

RAPOR TAŞIMA
Kod:
DoCmd.TransferDatabase acImport, "Microsoft Access", "D:\Nesne_Tasima_Deneme\Deneme.mdb", acReport, "Rapor1", "Rapor1"

sayın kübrashn,
Docmd TransferDatabase kullanımı hakkında kısa bir tanımlama olarak özetinin paylaşımı yapılmıştır.

bu konuda size ve bu yöntemi kullanmayı isteyebilecek üyelere bir de tavsiye olması adına şu hususu da paylaşmak yerinde olacaktır kanısındayım.eğer ara zamanlarda ya da sıklıkla tablo,form,sorgu,rapor yenilemeleri yapılıyorsa bu değişimleri ve yeniden yapılanmaları veya düzenlemeleri yapan kişi olarak siz ya da yapanların her seferinde kullanıcılara bunu haber vermekle zaman kaybetmek ya da bilgilendirmeyi unutma durumları ile karşılaşmamak yerine,bu kontrolleri otomatik hale getirip rahat bir çalışma elde edilebilir.bunun için de,yine denemelerinizde yaptığınız gibi kullanıcıların üzerinde çalıştıkları uygulamada boş bir form açıp yine bir buton içeriğine tüm form,rapor,sorgu ve gerekirse de tablo kontrollerini bu nesnelerin her biri için bir döngüye uyarlayıp uygulamaya kullanmaya geçmeden öncesinde herhangi bir değişiklik varsa direkt güncel olanını aktarıp kullanabilmek için bu kontroller yaptırılır ve sonrasında uygulamayı kullanmaya geçilmesi sağlanır.bu konuda döngü kullanımına yönelik olarak,nasıl kullanıldığını öğrenmenize teşvik etmek anlamında site içerisindeki arama sayfasından araştırıp edineceğiniz konulardaki bilgileri ve örnekleri incelemek sureti ile bu denemelerde bulunabilirsiniz.hatta,hem size hem de diğer üyelere benzer sorunlar ya da araştırmaları olduğunda inceleyebilecekleri bir konu olması için yeni bir konu açıp deneme örneğinizi de ekleyerek konu belirlemiş
olursunuz.bilginize...iyi çalışmalar,saygılar.
06/04/2015, 14:53

kübrashn

Sayın Atoz problemimin çözümü için verdiğiniz örnekler için özellikle yalın anlatımınız için çok teşekkürler.
Şimdilik sorunumu halletmiş oldum. Konunun örnek teşkil etmesi bakımından toparlayıp inşallah en kısa sürede yeni bir konu ile yüklemesini yapacağım. Kullandığım veriler kamu (Kişisel) olduğu için mevcut başka bir uygulama ile örneklendireceğim.
Günlerinizin hayırlı ve bereketli geçmesi dileğiyle sağlıcakla kalın.
1 2