Listboxt-Ado bağlantısında run-time error hatası

Katılım
25 Mart 2005
Mesajlar
60
Excel Vers. ve Dili
Excel 2007
Merhaba,

Bazı yönlerini değiştirmeye çalıştığım bir excel dosyasında listbox a Ado ile veri alınmakta. Ancak listbox a tıkladığımda run time hatası veriyor. Hata kodunu ekte gönderiyorum.

Kod:
  TextBox1 = ListBox1.Column(0)
  TextBox2 = ListBox1.Column(1)
  TextBox3 = ListBox1.Column(3)
  TextBox9 = ListBox1.Column(4)
  TextBox10 = ListBox1.Column(5)
  TextBox11 = ListBox1.Column(6)
  TextBox12 = ListBox1.Column(2)
  TextBox13 = ListBox1.Column(7)
  TextBox14 = ListBox1.Column(8)
  TextBox15 = ListBox1.Column(9)
  
   TextBox16 = ListBox1.Column(10) (hata satırı)

  TextBox4 = ListBox1.Column(0)
  CommandButton2.Enabled = True
  CommandButton3.Enabled = True
Yardımcı olacaklara şimdiden teşekkür ederim.

İyi çalışmalar...


Not: Haluk Bey' in hazırlamış olduğu TestAdo Dosyası. Kendisine de ayrıca teşekkür ederim.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
ListBox1 de 11 adet sütun var mı ?
 
Katılım
25 Mart 2005
Mesajlar
60
Excel Vers. ve Dili
Excel 2007
Merhaba Haluk Bey...

Evet var. Hatta 12 dahi yazdım.
Daha faydalı olabilir diye dosyayı ekte gönderiyorum.

İyi çalışmalar.

Tüm Form üyelerinin Kurban Bayramını Tebrik Ederim. Nice güzel bayramlara...
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Merhaba;

Bende MS Access yüklü olmadığı için mdb dosyasını görüntüleyemiyorum.

Sözkonusu dosyada "Dahili" olarak adlandırılmış bir alan var mı ?
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Peki...

Sanıyorum sorun şu ki, bu tip bir durumda ListBox' da sadece 10 adet sütun kullanabiliyoruz.
 
Katılım
25 Mart 2005
Mesajlar
60
Excel Vers. ve Dili
Excel 2007
Benimde aklıma geldi. Ancak başka bir dosya açıp listbox üzerinde 12 adet sütun denedim sorun çıkmadı. (Verileri Excel sayfasından almıştım)
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Sanırım, sorun ADO yönteminde ListBox'a 10 sütundan fazlasının alınamaması.

MS Access'den pek anlamam, belki tablodaki alan adetlerinde böyle bir kısıtlama da olabilir ....

Eğer, sevgili arkadaşımız ALPEN bu mesajı okursa belki bir yorum yapar.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Haluk' Alıntı:
....

MS Access'den pek anlamam, belki tablodaki alan adetlerinde böyle bir kısıtlama da olabilir ....

....
Hmmm.... 255 adete kadar kullanılabiliyormuş.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Bilmiyorum konuyla alakası varmı ama, şunuda hatırlatmak istedim. Eğer listboxa additem ile veri alınıyorsa bu durumda en fazla 10 sütun kullanılabiliyor. Buna karşın rowsource de böyle bir sınırlama yok.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Sevgili dostum Levent;

Konuyla tam olarak alakası var. Çünkü AddItem ile verileri aktarıyoruz.

Doğrusu bunu ben de bilmiyordum .... :mrgreen:
 
Katılım
25 Mart 2005
Mesajlar
60
Excel Vers. ve Dili
Excel 2007
Evet dediğiniz gibi sayın Levenm..

Haklı olabilirsiniz. Þimdi denedim AddItem ile 10 dan fazlada hata veriyor.
 
Katılım
25 Mart 2005
Mesajlar
60
Excel Vers. ve Dili
Excel 2007
Yardımlarınız için çok teşekkür ederim. İlginç bir durum.

Herkese kolay gelsin....
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
firstisland' Alıntı:
....
İlginç bir durum.
....
Bu durumda, aşağıdaki RefreshDB isimli proseduru dosyadaki ile değiştirirseniz sonuç alacağınızı tahmin ediyorum ...

[vb:1:4afe68ab23]Sub RefreshDB()
Dim MyArray() As Variant
Dim fs, f, s
Set RS = New ADODB.Recordset
strSQL = "SELECT * FROM [MyTable] ORDER BY isim"
RS.Open strSQL, adoCN, 1, 3
RS.MoveFirst
ListBox1.Clear
Unload UserForm2
Sheets("Sheet3").Range("a1").CopyFromRecordset RS
Set MyRng = Sheets("Sheet3").UsedRange
ListBox1.ColumnCount = MyRng.Columns.Count
MyArray = MyRng.Value
ListBox1.List = MyArray
Label1.Caption = "Kayit sayisi : " & RS.RecordCount
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile(DatabasePath)
TextBox6 = f.Size / 1024 & " Kb"
TextBox7 = Format(f.DateLastModified, "dd.mm.yyyy")
TextBox8 = Format(f.DateLastModified, "hh:mm:ss")
Set RS = Nothing
End Sub
[/vb:1:4afe68ab23]

Not: "CopyFromRecordset" metodu Office2000 ve üzeri versiyonlarda geçerlidir.
 
Katılım
25 Mart 2005
Mesajlar
60
Excel Vers. ve Dili
Excel 2007
Haluk Bey teşekkür ederim bu şekilde düzeldi gibi. Bazı ayarlar yapmak gerekiyor galiba. Þu an bakamıyorum. Ancak gene de ellerinize sağlık.

Herkese kolay gelsin.
Tekrar İyi Bayramlar...
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Rica ederim.... artık gerekli düzenlemeleri ve makyajı yaparsınız.

Size de iyi bayramlar...

Bu arada Levent dostuma da tekrar teşekkürler ...
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Rica ederim değerli dostum, üstadım Haluk bey, sizden öğrendiklerimizin yanında bunun hiç önemi yok.

Sizlerede iyi bayramlar dilerim.
 

akd

Destek Ekibi
Destek Ekibi
Katılım
14 Ağustos 2004
Mesajlar
1,114
Excel Vers. ve Dili
2003
Merhaba arkadaşlar,
ben sayın haluk' un yapmış olduğu örnekten kendime bir çalışma hazırladım.
başka bir Mycari adında tablo hazırladım
Bu tablodaki verileri otomatik sıra no su ile kaydettiriyorum
Sorunu Sil makrosunda yaşıyorum
otmatik sıra nosunu referens vererek sildirmek istedigim için
hata veriyor
Kodlar aşağıda yardım ederseniz sevinirim...
Private Sub silme_Click() '///////////////////////
'On Error Resume Next
MyQ = MsgBox(TextBox1 & " kaydını silmek istediğinize eminmisiniz ?", vbYesNo, "AKD.YAZILIM...")
If MyQ = vbYes Then
Set RS = CreateObject("ADODB.recordset")
strSQL = "SELECT * FROM [Mycari]Where sırano='" & TextBox1 & "'"
RS.Open strSQL, adoCN, 1, 3
RS.Delete
satıs_al
Set RS = Nothing
End If
End Sub
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Dosyalarınızın tamamını görüp de denemeden bir şey söylemek çok zor.

Sadece bir tahminde bulunabilirim. Eğer TextBox1 içinde nümerik bir değer varsa, aşağıdaki satırı orjinali ile değiştirip de bir deneyin...

Kod:
 strSQL = "SELECT * FROM [Mycari] Where sırano= " & TextBox1
 

akd

Destek Ekibi
Destek Ekibi
Katılım
14 Ağustos 2004
Mesajlar
1,114
Excel Vers. ve Dili
2003
Merhaba sayın Haluk
yadığınız kodu yazdım
RS.Open strSQL, adoCN, 1, 3
bu satırda hata verdi
Tür uyuşmazlığı var diyor
Tablodaki aldığıda nunetrik , hemde otomatik sayı alanı
teşekkürler
 
Üst