Excel ADO olayı

Katılım
28 Kasım 2008
Mesajlar
191
Excel Vers. ve Dili
excel 2003
excel 2010
Merhaba,

Exceli sayenizde öğreniyoruz. Bu siteden bugüne kadar pek çok şey öğrendim. Öğrendiklerimle acemi düzeyde kendi ihtiyacımı karşılayan programlar yazıyorum. Aşağıda listbox taki verileri süzen bir kod var. Bunu internetten buldum. (Belki buradan buldum ama hatırlamıyorum.) ADO konusunu pek bilmiyorum. Kendi bildiklerimle biraz değiştirdim ama dediğim gibi ADO olayını tam bilmiyorum. İnternette biraz araştırdım ama ADO konusunu tam anlamıyla anlatan bir şey bulamadım. Aşağıdaki kod sayfadaki bilgileri ilk satırdan itibaren alıyor. Benim istediğim sayfadaki 4 ncü satırdan itibaren bilgileri alması. Bunu bir türlü beceremedim. Bu konuda yardımlarınızı rica edeceğim. İyi çalışmalar.

Public Baglan As Object

Public Sub Baglanti_Yap()
Set Baglan = Nothing
Set Baglan = CreateObject("adodb.connection")
Baglan.connectionstring = "provider=microsoft.ace.oledb.12.0;data source=" & ThisWorkbook.FullName & ";extended properties=""excel 12.0;hdr=yes"""
If Baglan.State <> adStateClosed Then
Baglan.Close
Exit Sub
End If
Baglan.Open
End Sub



Sub progress(pctCompl As Single)

End Sub

DoEvents

End Sub


Public Kayit As ADODB.Recordset
Dim Sorgu As String



Call Baglanti_Yap
Set Kayit = CreateObject("adodb.recordset")
s = "SELECT SNO, SOYADI, ADI, DTARIHI, MM, TCKN, ACIKLAMA, HES, GSM, EMAIL, MILLIYET, PASNO, PASGECTAR FROM [DATA$] ORDER BY SNO"
Kayit.Open s, Baglan, 1, 2
islemac (2)
If Kayit.RecordCount > 0 Then
If Not Kayit.EOF Then
With Me
.ListBox1.Clear
.ListBox1.ColumnCount = 13
.ListBox1.ColumnWidths = "28;88;90;72;103;97;200;28;100;30;30;30"
.ListBox1.Column = Kayit.GetRows
.ListBox1.ListIndex = 0
End With
End If
End If

Debug.Print Kayit.Filter
Kayit.Filter = ""
If Kayit.RecordCount = 0 Then Exit Sub
Sorgu = IIf(Me.tb_asno.Text = "", "SNO<>''", "SNO Like '%" & Me.tb_asno.Text & "%'")
Sorgu = Sorgu & IIf(Me.tb_asoyad.Text = "", "", " And SOYADI Like '%" & Me.tb_asoyad.Text & "%'")
Sorgu = Sorgu & IIf(Me.tb_aad.Text = "", "", " And ADI Like '%" & Me.tb_aad.Text & "%'")
Sorgu = Sorgu & IIf(Me.tb_adob.Text = "", "", " And DTARIHI Like '%" & Me.tb_adob.Text & "%'")
Sorgu = Sorgu & IIf(Me.tb_amil.Text = "", "", " And MM Like '%" & Me.tb_amil.Text & "%'")
Sorgu = Sorgu & IIf(Me.tb_atckn.Text = "", "", " And TCKN Like '%" & Me.tb_atckn.Text & "%'")
Sorgu = Sorgu & IIf(Me.tb_anot.Text = "", "", " And ACIKLAMA Like '*" & Me.tb_anot.Text & "*'")
Sorgu = Sorgu & IIf(Me.tb_hes.Text = "", "", " And HES Like '*" & Me.tb_hes.Text & "*'")
Sorgu = Sorgu & IIf(Me.tb_gsm.Text = "", "", " And GSM Like '*" & Me.tb_gsm.Text & "*'")
Sorgu = Sorgu & IIf(Me.tb_mail.Text = "", "", " And EMAIL Like '*" & Me.tb_mail.Text & "*'")
Sorgu = Sorgu & IIf(Me.tb_milli.Text = "", "", " And MILLIYET Like '*" & Me.tb_milli.Text & "*'")
Sorgu = Sorgu & IIf(Me.tb_pasno.Text = "", "", " And PASNO Like '*" & Me.tb_pasno.Text & "*'")
Sorgu = Sorgu & IIf(Me.tb_pasgectar.Text = "", "", " And PASGECTAR Like '*" & Me.tb_pasgectar.Text & "*'")
Kayit.Filter = Sorgu

If Not Kayit.EOF Then
With Me
.ListBox1.Clear
.ListBox1.ColumnCount = 13
.ListBox1.ColumnWidths = "28;88;90;72;103;97;200;28;100;30;30;30"
.ListBox1.Column = Kayit.GetRows
.ListBox1.ListIndex = 0
End With
Else
Me.ListBox1.Clear
End If
sat = Sheets("DATA").[a65536].End(3).Row
uf_islem.tb_tks.Value = Format(Sheets("DATA").Cells(sat, "a"), "#,##")
uf_islem.tb_lks = Format(uf_islem.ListBox1.ListCount, "#,##")
lb_cinsiyet = ""
tb_asoyad.SetFocus
End Sub



Sub Personel_Filtrele()
Kayit = ""
Call Baglanti_Yap
Set Kayit = CreateObject("adodb.recordset")
s = "SELECT SNO, SOYADI, ADI, DTARIHI, MM, TCKN, ACIKLAMA, HES, GSM, EMAIL, MILLIYET, PASNO, PASGECTAR FROM [DATA$] ORDER BY SNO"
Kayit.Open s, Baglan, 1, 2
Kayit.Filter = ""
If Kayit.RecordCount = 0 Then Exit Sub
Sorgu = IIf(Me.tb_asno.Text = "", "SNO<>''", "SNO Like '%" & Me.tb_asno.Text & "%'")
Sorgu = Sorgu & IIf(Me.tb_asoyad.Text = "", "", " And SOYADI Like '%" & Me.tb_asoyad.Text & "%'")
Sorgu = Sorgu & IIf(Me.tb_aad.Text = "", "", " And ADI Like '%" & Me.tb_aad.Text & "%'")
Sorgu = Sorgu & IIf(Me.tb_adob.Text = "", "", " And DTARIHI Like '%" & Me.tb_adob.Text & "%'")
Sorgu = Sorgu & IIf(Me.tb_amil.Text = "", "", " And MM Like '%" & Me.tb_amil.Text & "%'")
Sorgu = Sorgu & IIf(Me.tb_atckn.Text = "", "", " And TCKN Like '%" & Me.tb_atckn.Text & "%'")
Sorgu = Sorgu & IIf(Me.tb_anot.Text = "", "", " And ACIKLAMA Like '*" & Me.tb_anot.Text & "*'")
Sorgu = Sorgu & IIf(Me.tb_hes.Text = "", "", " And HES Like '*" & Me.tb_hes.Text & "*'")
Sorgu = Sorgu & IIf(Me.tb_gsm.Text = "", "", " And GSM Like '*" & Me.tb_gsm.Text & "*'")
Sorgu = Sorgu & IIf(Me.tb_mail.Text = "", "", " And EMAIL Like '*" & Me.tb_mail.Text & "*'")
Sorgu = Sorgu & IIf(Me.tb_milli.Text = "", "", " And MILLIYET Like '*" & Me.tb_milli.Text & "*'")
Sorgu = Sorgu & IIf(Me.tb_pasno.Text = "", "", " And PASNO Like '*" & Me.tb_pasno.Text & "*'")
Sorgu = Sorgu & IIf(Me.tb_pasgectar.Text = "", "", " And PASGECTAR Like '*" & Me.tb_pasgectar.Text & "*'")
Kayit.Filter = Sorgu

If Not Kayit.EOF Then
With Me
.ListBox1.Clear
.ListBox1.ColumnCount = 13
.ListBox1.ColumnWidths = "28;88;90;72;103;97;200;28;100;30;30;30"
.ListBox1.Column = Kayit.GetRows
.ListBox1.ListIndex = 0
End With
Else
Me.ListBox1.Clear
End If

uf_islem.tb_lks = Format(uf_islem.ListBox1.ListCount, "#,##")
sat = Sheets("DATA").[a65536].End(3).Row - 1
uf_islem.tb_tks = Format(sat, "#,##")
End Sub
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
s = "SELECT SNO, SOYADI, ADI, DTARIHI, MM, TCKN, ACIKLAMA, HES, GSM, EMAIL, MILLIYET, PASNO, PASGECTAR FROM [DATA$] ORDER BY SNO"

Buradaki koyu olan kısım sayfa adı ve sayfadaki aralığı temsil eder.
Mesela aşağıdkai gibi de kullanabilirsiniz.
[DATA$D11:O9999]
 
Katılım
28 Kasım 2008
Mesajlar
191
Excel Vers. ve Dili
excel 2003
excel 2010
Hocam elinize sağlık. Çok teşekkür ederim. Dediğiniz gibi yaptım çalıştı.
 
Üst