Excel Forum
ALTIN ÜYELİK Hakkında Bilgi


Geri Git   Excel Forum > Diğer Yazılımlar > Access Örnekleri ve Bilgileri > Access Dersanesi
Atatürk
Şifremi Unuttum

DUYURU SİSTEMİ / REKLAM PANOSU

Access Dersanesi Bu başlıkta eğitim ve öğretim amaçlı her türlü access dokümanını paylaşabilirsiniz.

Özel Arama


Yanıtla
 
Paylaş Konu Araçları Görünüm Modları
Eski 03-07-2009, 23:02   #1
modalı
Uzman
 
modalı kullanıcısının avatarı
 
Giriş: 25/12/2005
Şehir: İstanbul
Mesaj: 4,162
Excel Vers. ve Dili:
MS Office 2010 Pro Türkçe
Varsayılan ADO ile Başlangıç

ADO İLE BAŞLANGIÇ

ADO ile bir tabloyu kullanmak için aktif proje dosyasının Connection nesnesine bir başvuru yapılıyor.

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Dim rs As New ADODB.Recordset 
rs.Open "Table1", CurrentProject.Connection
Bir tabloyu ya da veri kümesini açmak ve kullanmak için alternatif var. ADO’da bu alternatifleri iyi bilmemiz gerekiyor.

Bir tabloyu sadece okunabilir olarak açmak:

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
rs.Open "Table1", CurrentProject.Connection, adOpenKeyset, adLockReadOnly
Bir tabloyu kayıt ekleme, silme ya da değiştirme için açmak:

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
rs.Open "Table1", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
Sadece okunabilir bir SQL kodu açmak:

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
rs.Open "SELECT * FROM Table1 WHERE ...", CurrentProject.Connection, adOpenKeyset, adLockReadOnly
Kayıt eklenebilecek, silinebilecek ya da değiştirilebilecek şekilde bir SQL kodu açmak:

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
rs.Open "SELECT * FROM Table1 WHERE ...", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
KAYIT DEĞİŞİKLİKLERİ
Kayıt ekleme yapılabilmesi için tablo açılırken adLockOptimistic parametresi kullanılmalı.

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
rs.Open "Table1", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rs.AddNew
rs("Field1") = "Test"
rs("Field2") = 1234
rs.Update
Kayıt silme:

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
rs.Delete
Kayıt değiştirmek doğrudan değişikliğe geçiliyor.

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
rs.Open ...
rs("Field1") = "Test"
rs("Field2") = 1234
rs.Update
ADO İLE SQL KODU ÇALIŞTIRMAK

. CurrentProject.Connection deyimini kullanarak bir SQL kodunu çalıştırmak için (Execute) deneyin.

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Dim conn As ADODB.Connection
Set conn = CurrentProject.Connection
conn.Execute "UPDATE Table1 SET ad = 'deneme' WHERE (ID='1');"
ya da

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
CurrentProject.Connection.Execute "UPDATE Table1 SET ad = 'deneme' WHERE (ID='1');"

SQL İLE ARAMA YAPMAK

SQL kodu içinde arama yapmak için WHERE dışında LIKE deyiminin de kullanılabileceğini biliyorsunuzdur. Eskiden LIKE deyiminde metin alanlarında ayrıntılı arama için * işareti kullanılırdı. Şimdiyse bunun yerine % işareti kullanılıyor. (SELECT deyiminin yanında * işareti kullanılır. Bu değişiklik sadece LIKE deyimi için geçerli.)

Şu deyim ile bir SQL kodunu kayıt değişiklikleri yapılabilecek şekilde açabilirsiniz:

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
rs.Open "SELECT * FROM Table1 WHERE (AdiSoyadi Like 'A%'));", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
En sondaki adLockOptimistic deyimini adLockReadOnly yaparsanız kayıt kümesi sadece okunur olacaktır.

LIKE deyiminin yanındaki ‘A%’ ifadesi ile AdiSoyadi alanında ‘A’ ile başlayan kayıtlar seçiliyor. Değiştirip ‘[A-K,U-Z]%’ şeklinde kullanmanız da mümkün. Yani hem A-K arası, hem de U-Z arası değerlerin olduğu kayıtlar elde ediliyor.

LIKE deyiminden sonra bir de şunu yazmayı deneyin:

‘%A_[M,T]%’

Bu şekilde yapıldığında herhangi bir yerinde ‘A’ ve yanında herhangi bir karakter olup onun yanında da ‘M’ veya ‘T’ olan değerlerin bulunduğu kayıtlar listelenecektir. Mütevazı LIKE deyiminin eskiden kalma daha birçok yeteneği var.

TABLO YA DA KAYIT KÜMESİ ÜZERİNDE ARAMA YAPMAK

Kayıt kümesinde arama yapmaktan kasıt, SQL kodu kullanmadan, elde ettiğimiz kayıt kümesi (RecordSet) açıldıktan sonra arama yapılması. Bu komutların tümü Find adlı yeni komut altında toplanmış. Find komutu değişik parametreler alarak eski komutların işini yapabiliyor.

Arama işlemini başlatmadan önce tabloda kayıt olup olmadığı kontrol ediliyor. Zira kayıt yoksa MOVEFIRST komutu hata verir. Zaten herhangi bir anda ilk kaydı bulmak için tablonun başına gidilmesi gerekli.

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Dim rs as New ADODB.Recordset

rs.Open "Kisiler", CurrentProject.Connection, adOpenKeyset, adLockOptimistic

If rs.EOF = True Then
MsgBox "Tabloda kayıt yok." 
Else

rs.MoveFirst
rs.Find Kriter, 0

If rs.EOF = True Then
MsgBox "Kayıt bulunamadı."
Else
'Tüm kayıtları sırayla bul ve mesaj göster.
Do While Not rs.EOF
MsgBox "Kayıt bulundu." & vbCr & vbCr & rs("ID") & " " & rs("Ad") & " " & rs("Soyad")
'Sonraki kayıttan itibaren tekrar ara.
rs.Find Kriter, 1
Loop
End If
End If
rs.Close
Set rs = Nothing
İlk kaydı bul (FindFirst):

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
rs.MoveFirst
rs.Find “Kriter”, 0, adSearchForward
Sonrakini bul (FindNext):

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
rs.Find “Kriter”, 1, adSearchForward
Öncekini bul (FindPrevious):

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
rs.Find “Kriter”, 1, adSearchBackward
Son kaydı bul (FindLast):

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
rs.MoveLast
rs.Find “Kriter”, 0, adSearchBackward
Aradığınız kaydın bulunup bulunamadığını anlamak için, eğer ileri doğru arama yapıyorsanız kümenin sonunda (rs.EOF=True ? ) olup olmadığınızı, geri doğru arama yapıyorsanız kümenin başında (rs.BOF=True ? ) olup olmadığınızı kontrol etmelisiniz.

BOŞ KAYITLAR GELSİN

NULL deyimi boş değerleri yani ‘hiçbirşey’i ifade ediyor. ADO’nun SQL kodlarında bu deyimle beraber eşitlik işaretleri kullanılıyor.

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
‘VeriAlani1 = NULL’
‘VeriAlani1 <> NULL’
Son olarak NEW ya da CREATEOBJECT deyimi ile oluşturduğunuz Connection ve Recordset nesnelerini NOTHING ile silmeyi unutmayın.

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Set rs = Nothing
Set conn = Nothing
ADO o kadar ayrıntılı ki tam olarak anlatana kadar daha çok örnek yapmamız gerekiyor.


Yazının Temeli alıntıdır. Üstünde değişiklikler yapılmıştır. modalı
modalı Çevrimdışı   Alıntı Yaparak Cevapla
Eski 04-07-2009, 09:51   #2
muzaffer.sm
 
muzaffer.sm kullanıcısının avatarı
 
Giriş: 13/11/2008
Şehir: Eskikent
Mesaj: 274
Excel Vers. ve Dili:
Microsoft Office Professional Plus 2010 TR
Varsayılan

Sayın Modalı


Güzel bir başlangıç yapmışsınız.Tebrikler.
Kişiler bilgi birikimlerini beyinlerinde barındırırken bilmeyenlerede aktarsınki bilmeyenlerde öğrensin.Balık tutmayı öğretmiş olursunuz ki işte o zaman insanlar elindeki oltası ile kendi balığını kendisi tutsun.

Buradaki açmış olduğunuz bu konulu dersin ve öğretiminizin devamını dediğiniz gibi örneklerle ve açıklamalarla pekiştirilecek bir şekilde zamanlarınızın elvermesi koşulu sizlerden ayrıca rica ederiz. Dolayısıyla bilenle bilmeyen bir olurmu felsefesi ile hareket ediyoruz.



Saygılarımla
muzaffer.sm Çevrimdışı   Alıntı Yaparak Cevapla
Eski 04-07-2009, 11:02   #3
uyrdkl
 
uyrdkl kullanıcısının avatarı
 
Giriş: 07/07/2008
Şehir: Adana
Mesaj: 130
Excel Vers. ve Dili:
2003 - 2007
Varsayılan

teşekkürler
uyrdkl Çevrimdışı   Alıntı Yaparak Cevapla
Eski 13-07-2009, 11:08   #4
İsmail Küçükşengün
 
İsmail Küçükşengün kullanıcısının avatarı
 
Giriş: 31/08/2005
Şehir: İstanbul
Mesaj: 1,531
Excel Vers. ve Dili:
Excel 2003 - Türkçe
Varsayılan

Paylaşımlarınıza çok teşekkürler.
__________________
İyi Çalışmalar....

Excel XP - Türkçe
İsmail Küçükşengün Çevrimdışı   Alıntı Yaparak Cevapla
Eski 16-11-2009, 12:05   #5
ramazanyurt
 
Giriş: 09/01/2006
Mesaj: 80
Varsayılan

ya bu find özelliği tam olarak nasıl kullanılıyor. ben mesala içerisinde ramazan olan kaydı bulmasını istiyorum. bunu nasıl yaparız?
ramazanyurt Çevrimdışı   Alıntı Yaparak Cevapla
Eski 16-11-2009, 16:46   #6
modalı
Uzman
 
modalı kullanıcısının avatarı
 
Giriş: 25/12/2005
Şehir: İstanbul
Mesaj: 4,162
Excel Vers. ve Dili:
MS Office 2010 Pro Türkçe
Varsayılan

Alıntı:
ramazanyurt tarafından gönderildi Mesajı Görüntüle
ya bu find özelliği tam olarak nasıl kullanılıyor. ben mesala içerisinde ramazan olan kaydı bulmasını istiyorum. bunu nasıl yaparız?
Sayın ramazanyurt,

Find daki kriter cümlelerine örnekler:

"Country='Norway'"
"Date>#7/22/97#"
"Country LIKE N*"

siz adı alanında arama yapacaksanız:

"adi='ramazan'"

kullanılabilir.

0 yazıldığında arama bulunulan kayıttan başlar.

İyi çalışmalar
modalı Çevrimdışı   Alıntı Yaparak Cevapla
Yanıtla


Konu Araçları
Görünüm Modları

Gönderme Kuralları
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
SimgelerAçık
[IMG] kodu Açık
HTML kodu Kapalı


Saat 05:56


Bu forum Elit NET - www.elitnet.com.tr tarafından sunulmaktadır.

Excel Eğitimi - Mobil Uygulama - Çorlu - Çorlu Web Tasarım - Tarot Falı - invest in turkey - Lingerie - Dyeing Machine - Karton Bardak- Çorlu Özel Eğitim- Site Yönetimi- Led Aydınlatma- Pronet Tekirdağ- Çorlu Kamera- Pronet Edirne- Pronet Kırklareli- Pronet Çerkezköy- Pronet Çorlu- Pronet Lüleburgaz- Pronet Keşan- Çorlu Araç Takip- Çorlu Su Arıtma- Boru Profil- Gebze Emlak- Beylikdüzü Temizlik- İstanbul Burun Estetiği- Bakır Sülfat- Rampa- Rotary- Çorlu İnternet Sitesi- youngblood- Çorlu Palet- Çerkezköy Palet- Çorlu Prefabrik- Çorlu Sürücü Kursu- Çorlu Sandviç Panel- Şişli Avukat- Korona Test Kalemi- Çorlu Vinç- Çorlu Pimapen Tamiri- Çorlu Çelik Konstruksiyon-
Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Advertisement System V2.6 By   Branden