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..
 
Katılım
5 Ağustos 2007
Mesajlar
54
Excel Vers. ve Dili
Office 2007 türkçe
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
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
İş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.
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Ö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?
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
49 kişi okumuş ama kimsede çıt yok.. Bu kadar zor bir soru değil bence de herhalde bizim ustalar ortada yok..
 
Katılım
15 Kasım 2006
Mesajlar
583
Excel Vers. ve Dili
Ms Office 2003 Türkçe
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.
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
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...
 
Katılım
15 Kasım 2006
Mesajlar
583
Excel Vers. ve Dili
Ms Office 2003 Türkçe
Tabi burada combobox için de biraz uğraşmak gerekebilir.
 
Katılım
15 Kasım 2006
Mesajlar
583
Excel Vers. ve Dili
Ms Office 2003 Türkçe
Uğraştırır derken, combobox a kayıt ekleme gibi şeyler demek istedim.
Özel bir zorluk kastetmedim.
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Ö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?
 
Katılım
15 Kasım 2006
Mesajlar
583
Excel Vers. ve Dili
Ms Office 2003 Türkçe
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.
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
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
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Bu arada söylemeyi unuttum.. Değişkenlere daha sonra as string ifadesini de ekledim. Ama sanırım çok da önemli değil..
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
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.
 
Katılım
15 Kasım 2006
Mesajlar
583
Excel Vers. ve Dili
Ms Office 2003 Türkçe
nz yi kullanın.
Kod:
nz(<de&#287;i&#351;ken>,"")
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
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..
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
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
 
Katılım
22 Ocak 2007
Mesajlar
815
Excel Vers. ve Dili
2003
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;
 
Üst