merhaba arkadaşlar vb de bir form içerisinde kaydet butonum var bunun bazı kurallarla çalışmasını istiyorum uzun zamandır uğraşıyorum ama bir türlü içerisinden çıkamadım. kullandığım kodları aşağıda veriyorum. bana yardımcı olabilecek veya başka bir yol önerebilecek arkadaşların yardımlarını bekliyorum.msn adresim erolakgun @ msn.com (boşluk yok)
kaydet tıklandığında önce text1 e göre arama yapması için; Data1.Recordset.FindFirst "user = '" & Text1 & "'" if Data1.Recordset.NoMatch = False Then MsgBox "Bu bilgilere sahip bir kullanıcı zaten mevcut.", 16, "Kayıt Bulundu" exit sub else bundan sonrasında kayıt bulunmazsa yeni bir kriter daha verip yine arama yaptırıyorum Data1.Recordset.FindFirst "user = '" & Text2 & "'" if Data1.Recordset.NoMatch = False Then
işte burada işler karışıyor sorunlarım şunlar;
1- textbox lar data1 le bağlı olduğundan önceden verilmiş addnew komutuyla yeni bir satıra anında içerisindeki text i giriyor ve arama sonucunda o an oluşturulmuş kayıt bulunup hata veriyor. 2- bu sorunu aşmak için yaptığım şeyler sonucu aynı değerlere sahip bir kaydı daha kabul ediyor. buda yapmak iştediğim iş için ayrı kişilere aynı kullanıcı adıyla kullanım sağlıyor 3- aynı kişi 2 veya daha fazla aynı bilgilerle kaydedilebiliyor
bu sorunları nasıl aşacağım konusunda yardım edebilecek arkadaşlar varsa acilen bekliyorum
şu ana kadar sabır gösterip okuduğunuz içinde yardımcı olamasanız bile çok çok teşekkür ederim
MUZİK_7
Dostum yolun başında oldugu belli, şimdi sana 1-2 tavsiyem olacak bunları yerine getirebilirsen ilerde cok ama cok rahat edersin.
1. Öncelikle veritabanlarında, Bir alanı Primary Key olarak secebiliyorsun veya birden fazla alanı birleştirip primary key yapabiliyorsun. Şimdi nedir bu primary key: PK, bir tabloda sadece 1 tane olabilecek alandır, yani isim alanı PK secilirse aydın ismine sahip sadece 1 kayıt olabilir. Ama bu pek tercih edilen bir yöntem deildir cünkü aynı isme sahip bir cok kayıt olabilir. Ozaman işte Kayıt numarası diye bir şey geliyor gündeme. Oda sudur her kayda otomatik bir sayı veren alan. Tabloyu hazırlarken biz bu alanı PK secip, degerini her auto increment yani otomatik arttırılma seklinde secersek, her kayıt ekleme işleminde bu deger sürekli 1 artacaktır.
isimler tablosu ID - ADI - SOYADI 1 - AYDIN - ÜNLÜ 2 - AYDIN - ÜNLÜ
bak şimdi aynı kayıttan 2 tane var ama ID numaraları farklı oldugu icin bunlar aynı kayıtlar değildir.
2. ID alanımızı PK ve auto increment sectikten sonra artık bizim diger işlemlerde baska bi alanla kalmadı, her türlü sorguyu bu alandan yapacaz. Yani kayıt güncelleme, silme, bir kayıtı aramak falan. Peki bunları bu alan üzerinden nasıl yaparsın şöyle; Formun üzerine mesela isim soysisim adres bilgilerini tutan textboxlar var, ozaman sende 1 tane ID numarasını tutan bir textbox ekliceksin. ve bunun visible özelleğini false yapacaksınki formun üzerinde durup kullanıcı rahatsız etmesin ve yanlışlıkla degeri değişmesin, kullanıcı bilemeden icindeki degeri değiştirip programın hata vermesine sebep olabilir cünkü.
3. asla ama asla data nesnesini kullanma :) onun yerine ADO yu kullan. Ama forma ADO kontrolü ekleyip kullanma, herseyi kod ile yap, ado yu kod ile olustur. ilk basta referance menüsünden ado referanasını projene eklemen lazım. sonra kayıt ekleme silme arama düzeltme gibi işlemleri, addnew, findfirst ile falan yapmaya kalkma. Sadece SQL kodlarını kullan.
Ana hatlarıyla böyle işte, ilk başta biraz kafan karışacaktır. Access kullan ilk baslarda, biraz kurcala, tablo olusturdugun yerdeki alanların özelliklerini kurcala falan.
Takıldıgın yerde yine sorarsın, yardımcı olan biri çıkar mutlaka
sayın aydınünlü anlattıkların ve ilgin için çok teşekkür ederim ama ben vb6.0 ı sadece okuyarak ve örneklere bakarak öğreniyorum herhangi bir ders falan görmüyorum o sebeple demek istediklerini anlayamadım