• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Bazı Metin kutularındaki verilerin kayıt değiştiğinde sabit kalmasını istiyorum

Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Arkadaşlar, belki formda vardır ama herhalde ben bulamadım. Benim bir formumda tabloya bağlanmış İlçe-mahalle-cadde vb. alanlarım var. Bu verilerin denetim kaynağı olana tabloda bazı eksik bilgiler (Tc kimlik, adres vb gibi) tamamlanacak. Fakat kullanıcı ilçe-mahalle-sokak alanlarının formda bir kez girildiğinde ekrandaki kayıt değiştiğinde bile aynı kalmasını istiyor. Anlattığım gibi bu alanlar aslında tablodan gelen verilere bağlı. O yüzden kayıtlar arasında gezinti yapıldığında mevcut veriler doğal olarak değişmeli.
Ben bunun için "Kilit" isimli ikili bir düğme koydum. Düğmeye basıldığında ekrandaki sözü geçen metin kutularındaki verileri değişkenlere atıyorum. Daha sonra da başka bir düğme ile -mesela yapıştır adlı bir düğme ile- değişkenleri metin kutularına geri gönderiyorum. Fakat bu işlemi kullanıcı bilinçli olarak istediğinde yapmalı. Yani "Kilit" basılı iken veriler hafızada sabit kalmalı, "Yapıştır"a basılınca da sınırsız kere bu veriler yapıştırılmalı. Ne zaman ki "Kilit" düğmesi basılı durumdan kapalı duruma geldi, o zaman artık kopyalama işlemi devre dışı olmalı. Bu arada "Yapıştır" butonu visible komutu ile tabii gizlenebilir.

Aslında bu yoldan gitmem belki doğru olmayabilir. Ben bu yoldan gittim fakat sadece yeni kayıt açtırdığımda verileri kopyalayabildim. Halbuki ben bu işlemi istediğim zaman yapmalıyım. Başka yol öneren olabilir. Yardımlarınızı bekliyorum. Bu arada örnek geliyor..
 
Bu anlattığınız konu hakkında çok fazla bilgi edinemedim bi örnek eklerseniz belki o şekilde bi yardımımız dokunur diye düşünüyorum. Üstadlarmız neder bilemeyeceğim
 
İşte örnek

Örneği hazırladım. İncelerseniz sanırım anlaşılır. Tabii benim gittiğim yoldan gitmeniz şart değil, başka alternatifler de iş görebilir.
 
Örnek incelemeye zamanı olmayanlar için kodları açık yazayım

Kopyala tuşuna şu kodlar gelince:

ilçe_adi = Me![ilçeadi]
mahalle_adi = Me![mahalleadi]
sokak_adi = Me![sokakadi]
cadde_adi = Me![caddeadi]
mid_ = Me![mid]
cid_ = Me![cid]
sid_ = Me![sid]


Yapıştır tuşunda da şu kodlar olunca

Me![ilçeadi] = ilçe_adi
Me![mahalleadi] = mahalle_adi
Me![sokakadi] = sokak_adi
Me![caddeadi] = cadde_adi
Me![mid] = mid_
Me![cid] = cid_
Me![sid] = sid_

Form yüklendiğinde tabii ki

Dim ilçe_adi As String
Dim mahalle_adi As String
Dim sokak_adi As String
Dim cadde_adi As String
Dim mid_ As String
Dim cid_ As String
Dim sid_ As String

değişkenler ekleniyor. Ama çalışmıyor.
Fakat tek bir düğmeyi şu kodlarla çalıştırınca

ilçe_adi = Me![ilçeadi]
mahalle_adi = Me![mahalleadi]
sokak_adi = Me![sokakadi]
cadde_adi = Me![caddeadi]
mid_ = Me![mid]
cid_ = Me![cid]
sid_ = Me![sid]
DoCmd.GoToRecord , , acNewRec
Me![ilçeadi] = ilçe_adi
Me![mahalleadi] = mahalle_adi
Me![sokakadi] = sokak_adi
Me![caddeadi] = cadde_adi
Me![mid] = mid_
Me![cid] = cid_
Me![sid] = sid_


olunca çalışıyor. Ama yeni kayıt açıp değişkenleri oraya aktarıyor. Oysa ben form üzerindeki adı geçen kutulardaki verileri bir kere hafızaya alıp tıpkı windowsun kopyala-yapıştırı gibi kullanmak istiyorum. Bunun bir yolu yok mu?
 
49 kişi okumuş ama kimsede çıt yok.. Bu kadar zor bir soru değil bence de herhalde bizim ustalar ortada yok..
 
global değişkenleri kullanmanız lazım.

Örneğin, Genel adında bir modülünüz olduğunu varsayalım.
Bu modül içerisinde aşağıdaki gibi bir tanımlama yaptığınızda:

Kod:
public ilce as string
public cadde as string
public ........

Bu değişkenleri, heryerden rahatlıkla kullanabilirsiniz.
Kullanım şekli:
Kod:
....
Genel.ilce
....

Zaten Genel den sonra noktaya basınca public değişkenleriniz gelecektir karşınıza.
 
Sayın yeni54.. Yani benim sorunum, kayıt gezintisi sırasında tanımladığım değişkenin sıfırlanması mı?.. Bunu düşündüm ama aynı form içinde yazdığım "geçerli olduğunda yordamı"nın yeterli olacağını sanıyordum. Hemen bir modül ile deniyorum. Çok teşekkürler...
 
Tabi burada combobox için de biraz uğraşmak gerekebilir.
 
Uğraştırır derken, combobox a kayıt ekleme gibi şeyler demek istedim.
Özel bir zorluk kastetmedim.
 
Örneği incelerseniz zaten benim comboboxlar sadece asıl id ve UN uzantılı -mesela mahalleadi aslında mahalleid verisini oluşturuyor gibi- verileri oluşturmak için kullanılıyor ve verilerini bir sorgu üzerinden başka bir tablodan alıyor. Aslında zaman ayırabilseniz bana çok yardım edebilirsiniz.Örnekte aslında çok güzel anlattım. Bir nevi kopyala-yapıştır yapmak istiyorum. Ama yapıştırma işinin sınırı olmayacak. Kopyalama yapınca -yani değişkenlere veri atayınca- daha sonra değişkenlerden verileri başka metinkutularına geri gönderdiğimizde değişkenler sıfırlanacak mı? O zaman yapıştırma kodlarının sonuna yapıştırılan veri tekrar değişkene atanarak sanırım çözüm bulunabilir? Yanılıyor muyum?
 
değişkenleri sıfırlamak tamamen buton kontrolünde olacak.
kopyala butonuna basınca ilgili alanları global deişkenlere atayacaksınız,
yapıştır butonuna basınca da global değişkenlerden form değişkenlerine atayacaksınız. Bu arada sıfırlama olmayacak. Sıfırlama için de bir buton koyabilirsiniz tabi.
Değişkenler global olduğu için, ilgili form kapansa bile değişkenlerin içeriği
en son kopyala butonuna basılan değerler olarak kalmaya devam edecek.
Form tekrar açıldığında, yapıştır butonu kullanıldığında bile son kopyalanan değerler yine form değişkenlerine aktarılmış olacak.
Hatta bu iş için buton bile kullanmadan ctrl-c ve ctrl-v yi kullanabilirsiniz.
 
Aslında formda bir kilit butonumuz var. animasyonlu bir resim de ekledim. O buton basıldığında veriler mevcut form üzerinden

If kitle1 = 0 Then 'kitle1 tuşumuzun adıdır.

ilçe_adi = Me![ilçeadi]
mahalle_adi = Me![mahalleadi]
sokak_adi = Me![sokakadi]
cadde_adi = Me![caddeadi]
mid_ = Me![mid]
cid_ = Me![cid]
sid_ = Me![sid]

kilitli.Visible = False 'Bunlar resim için
kilitsiz.Visible = True 'Bu da resim
Else
kilitli.Visible = True 'aynen
kilitsiz.Visible = False 'bu da aynen
End If



şeklinde değişkenlere atanıyor. Sonra da Yapıştır diye bir butonumuz var, o da değişkenlerdeki verileri tekrar formdaki aktif kayıt üzerine yapıştırıyor.


Me![ilçeadi] = ilçe_adi
Me![mahalleadi] = mahalle_adi
Me![sokakadi] = sokak_adi
Me![caddeadi] = cadde_adi
Me![mid] = mid_
Me![cid] = cid_
Me![sid] = sid_

Buraya kadar yaptıklarım aynen böyle. Sadece değişken tanımlarını formumun geçerli olduğunda olay yordamına yazdım. Tek hatam bu mu?

Private Sub Form_Current()
DoCmd.Maximize
Dim ilçe_adi
Dim mahalle_adi
Dim sokak_adi
Dim cadde_adi
Dim mid_
Dim cid_
Dim sid_

End Sub
 
Bu arada söylemeyi unuttum.. Değişkenlere daha sonra as string ifadesini de ekledim. Ama sanırım çok da önemli değil..
 
Evet. Kodlar aynen çalıştı. Hakkınız var. Fakat değişkenlere veri atarken boş olan kutular olabilecek. Mesela Sokak veya Caddeden biri boş olacak. Çünkü bazı adreslerde sokak, bazılarında cadde var. O zaman hata vermesini nasıl engelleriz? Çünkü null veri olunca hata veriyor. Bazen verinin verinin de null olması gerek.
 
nz yi kullanın.
Kod:
nz(<de&#287;i&#351;ken>,"")
 
Sevgili yeni54... as string ifadesini silince public de&#287;i&#351;keniyle bu i&#351; oldu. Hata da vermiyor o zaman.. &#199;ok &#231;ok te&#351;ekk&#252;&#287;rler.. Bana hatam&#305; g&#246;sterdin her zamanki gibi. &#304;yi ki vars&#305;n, iyi ki dostumsun.. Sa&#287;ol..
 
De&#287;i&#351;kenleri silmem -de&#287;i&#351;tirmem de&#287;il temizlemem- gerekti&#287;inde ne yapabilirim? Hepsine kodla =null yapsam nas&#305;l olur?
Not: Gerek kalmad&#305;. &#304;ki se&#231;imli d&#252;&#287;memin kapal&#305; konumunda
il&#231;e_adi = Me![il&#231;eadi]
mahalle_adi = Me![mahalleadi]
sokak_adi = Me![sokakadi]
cadde_adi = Me![caddeadi]
mid_ = Me![mid]
cid_ = Me![cid]
sid_ = Me![sid]

kodlar&#305; i&#351;lemedi&#287;i i&#231;in de&#287;i&#351;kenlerden gelen veriler kesiliyor ve yap&#305;&#351;t&#305;rma i&#351;lemi yap&#305;lam&#305;yor. Tam istedi&#287;im gibi. S&#252;perrrr
 
bu biraz mant&#305;ks&#305;z de&#287;ilmi diyelim siz bir kay&#305;t girdiniz biri a mahallesinde oturuyor di&#287;eri b mahallesinde oturuyor 1 kay&#305;ttan 2. kay&#305;ta ge&#231;tti&#287;inde 2.kay&#305;t&#305;n mahallesi soka&#287;&#305; yani b&#252;t&#252;n bilgileri de&#287;i&#351;ir bana biraz mant&#305;ks&#305;z geliyor ha her yeni kay&#305;tta bir &#246;nceki kay&#305;ttaki veriler ile alanlar&#305;n hepsini doldurma dersen anlard&#305;m onunda kolay yolu vard&#305;
 
Geri
Üst