ADO'da Select WHERE yardım

Katılım
2 Temmuz 2007
Mesajlar
58
Excel Vers. ve Dili
Excel 2003
Sevgili arkadaşlar forumdaki ADO örneklerine bakarak kendi programıma uyarlamaya çalışıyorum fakat bir yerde başarılı olamadım bu konuda sizlerden yardım rica ediyorum.

Problemim, Sorgu çalıştırarak istediğim bilgileri forma getirtiyorum.Çalıştırdığım sorgunun table'ında çok fazla bilgi olacağından ve formumum küçük olması gerektiğinden dolayı sorgu içersindeki değişiklikleri ADO'yla yapmak istiyorum.

Ekteki örnekte göreceğiniz üzere Formu açtığımda combox'la tabledaki donem sorgulatıp RunQuery butonuna basıp formumda sorguyu çalıştırıyorum.Buraya kadar problem yok.Yapmak istediğim P1 ve P2 Mkutusunu tıkladığımda P1 ve P2 ait olan ZBakım_P1 ve PBakım_P1 deki bilgileri form üzerinde ilişkisiz olan ZBakım ve PBakıma gelmesi.Örneklere bakarak ben bunu sadece table'daki ilk kayıt için yapabildim.2nci kayıtta ve üçüncü kayıtta bu bilgiyi getirtemiyorum.
WHERE koşuluyla donemi 2008, 2009 vs. olan bilgileri getirsin istiyorum.

Modalı arkadaşımız aşağıdaki örneğini kendi programıma uyarladım fakat başarılı olamadım bir bilgi gelmiyor.Bana bu konuda yok gösterebilirseniz çok sevinirim.

Teşekkürler.

Private Sub cmdAra_Click()
Dim rs As New ADODB.Recordset
rs.Open "SELECT * FROM Kişiler WHERE SiraNo=" & txtAra & ";", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
If rs.RecordCount = 0 Then
MsgBox "İlgili Kayıt Yok", , "Uyarı"
Exit Sub
End If
Me.RecordsetClone.FindFirst "[SiraNo] = " & Me.txtAra
Me.Bookmark = Me.RecordsetClone.Bookmark
rs.Close
End Sub
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Merhaba;

Alan isimleriniz kafamı çok karıştırdı ama aşağıdaki yöntemle doğru where şartlarıyla istediğiniz alanları istediğiniz yere alabilirsiniz...
İsterseniz örneği ve isimleri basitleştirip tekrar ekleyin, üstünde çalışalım.İnanın anlamaya çalıştım ama mesela "formda ilişkisiz olan zbakım ve pbakım " diye alanlardan bahsetmişsiniz. Bu alanları göremedim, zaten yoklar ;)

Kod:
Dim con As ADODB.Connection
Dim rs As New ADODB.Recordset
Dim bbsql As String
Set con = CurrentProject.Connection
bbsql = "select alanismi as bb from tabloismi "
bbsql = bbsql & "where alanismi=" & Me.formdaki_alanismi
rs.Open bbsql, con, adOpenForwardOnly, adLockReadOnly
Do Until rs.EOF
Me.formda_görmek_istediğimiz_alan = rs("bb")
rs.MoveNext
Loop
rs.Close
con.Close
Set rs = Nothing
Set con = Nothing
 
Katılım
2 Temmuz 2007
Mesajlar
58
Excel Vers. ve Dili
Excel 2003
Ah şu tırnak işaretleri :)

Sayın beab05 cevabınızdan dolayı teşekkür ederim.Sizlerden cevap beklerken bende boş durmadım araştırmaya ve testlere devam ettim ve yapmak istediğim şey hatasını tırmak işaretlerini koymamamdan dolayı olduğunu gördum. (where Donem='" & Donem &"'.......) Tırnak işaretlerini koyunca sorgulama gerçekleşti.İstediğim oldu.

beab05 arkadaşım vermiş olduğunuz örneği bir kenarda saklı tutacağım.

Teşekkürler.
 

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,552
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
Sayın jeday_jey;

Dosyanızın çalışan halini rica etsem, siteye ekler misiniz?

Teşekkürler.
 
E

ExcelDonkey

Misafir
Ya bu kodlar biraz ilkel ve hamallık, hem siz kayıtsetini açık tuttuğunuz sürece tabloyu erişilemz kılıyorsunuz. Bence Conn.Execute ile hızlı yapın bu işleri.
 
Üst