Excel ve Acces Bağlantısında Ölçüt İfadesinde Veri Türü Uyuşmazlığı Hatası

Astalavista58

Altın Üye
Katılım
20 Ocak 2020
Mesajlar
242
Excel Vers. ve Dili
Office 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
20-02-2025
Öncelikle herkese merhaba, hayırlı haftasonları dilerim.


Kod:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

Dim baglan As New Connection
Dim rs As New Recordset
Dim dbPath As String



dbPath = ThisWorkbook.Path & "\DB.accdb"
baglan.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbPath


rs.Open "SELECT * FROM takiplipersonel WHERE sicil ='" & ListBox1.ListIndex & "'", baglan, adOpenKeyset, adLockPessimistic
takiplidetay.TextBox1.Text = rs.Fields(3)
takiplidetay.Show

End Sub
Bu kod ile ListBox1'de bir değere çift tıkladığımda, "takiplidetay.Show" formunun açılarak, Accesteki "takiplipersonel" personel tablosundan verileri textboxıma getirmeye çalışıyorum.

Ancak bu satırda "Ölçüt ifadesinde veri uyuşmazlığı hatası alıyorum.
Kod:
rs.Open "SELECT * FROM takiplipersonel WHERE sicil ='" & ListBox1.ListIndex & "'", baglan, adOpenKeyset, adLockPessimistic
Tabloda aramış olduğum "SİCİL" ifadesi sayısal bir değer. ListBox'ta '" & ListBox1.ListIndex & "'" olarak indexsini alınca noktalamadan dolayı metinsel ifadeye dönüştüğünü düşünüyorum o yüzden hatayı verebilir diye tahmin ediyorum ama sorunu bir türlü aşamadım yardımcı olabilir misiin
 
Katılım
2 Temmuz 2014
Mesajlar
145
Excel Vers. ve Dili
2021 Türkçe, 64bit
takiplipersonel tablosundaki sicil alanının türü eğer sayısalsa
Kod:
rs.Open "SELECT * FROM takiplipersonel WHERE sicil =" & ListBox1.ListIndex , baglan, adOpenKeyset, adLockPessimistic
şeklinde tek tırnak olmadan dener misiniz
 
Katılım
2 Temmuz 2014
Mesajlar
145
Excel Vers. ve Dili
2021 Türkçe, 64bit
ListBox1.ListIndex içindeki ifade de virgül varsa replace(ListBox1.ListIndex,",",".") olarak kullanabilirsiniz?
 

Astalavista58

Altın Üye
Katılım
20 Ocak 2020
Mesajlar
242
Excel Vers. ve Dili
Office 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
20-02-2025
takiplipersonel tablosundaki sicil alanının türü eğer sayısalsa
Kod:
rs.Open "SELECT * FROM takiplipersonel WHERE sicil =" & ListBox1.ListIndex , baglan, adOpenKeyset, adLockPessimistic
şeklinde tek tırnak olmadan dener misiniz
Sayın hocam çok teiekkür ederim gerçekten, 1 saat rahat bunu araştırdım Allah razı olsun.
 
Son düzenleme:
Katılım
2 Temmuz 2014
Mesajlar
145
Excel Vers. ve Dili
2021 Türkçe, 64bit
rica ederim
iyi çalışmalar)
Not: sorgularda alan türü önemlidir
metinler tırnak içinde : 'metin',
sayısallar tırnaksız : 1222,
tarih alanı ise bazen cdbl, clng, int gibi dönüşümler kullanarak bazen de "#tarih#" şeklinde yazılarak kullanılabilir
 

Astalavista58

Altın Üye
Katılım
20 Ocak 2020
Mesajlar
242
Excel Vers. ve Dili
Office 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
20-02-2025
rica ederim
iyi çalışmalar)
Not: sorgularda alan türü önemlidir
metinler tırnak içinde : 'metin',
sayısallar tırnaksız : 1222,
tarih alanı ise bazen cdbl, clng, int gibi dönüşümler kullanarak bazen de "#tarih#" şeklinde yazılarak kullanılabilir
Hocam Form açılıyor ama rs değeri boş geliyor textboxa değeri boş açılıyor. Acaba formüllerin yerinde mi bir yanlışlık var
 
Katılım
2 Temmuz 2014
Mesajlar
145
Excel Vers. ve Dili
2021 Türkçe, 64bit
Kod:
takiplidetay.TextBox1.Text = rs.Fields(3)
takiplidetay.Show
bu kodda önce değer atanıp sonra açılıyor bu 2 satırın yerini değiştirerek dener misiniz?
Kod:
takiplidetay.Show
takiplidetay.TextBox1.Text = rs.Fields(3)
Not: deneme amaçlı olarak
rs.Open "SELECT * FROM takiplipersonel WHERE sicil ='" & ListBox1.ListIndex & "'", baglan, adOpenKeyset, adLockPessimistic
satırının altına
msgbox "kayıt sayısı" & rs.recordcount & vbnewline & "Sicil: " & rs("sicil")
kodunu ekler misiniz? böylece kayıt sayısını ve sicil no mesaj olarak gösterilir
Kod:
rs.Open "SELECT * FROM takiplipersonel WHERE sicil ='" & ListBox1.ListIndex & "'", baglan, adOpenKeyset, adLockPessimistic
msgbox "kayıt sayısı" & rs.recordcount & vbnewline & "Sicil: " & rs("sicil")
gibi
 

Astalavista58

Altın Üye
Katılım
20 Ocak 2020
Mesajlar
242
Excel Vers. ve Dili
Office 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
20-02-2025
Kod:
takiplidetay.TextBox1.Text = rs.Fields(3)
takiplidetay.Show
bu kodda önce değer atanıp sonra açılıyor bu 2 satırın yerini değiştirerek dener misiniz?
Kod:
takiplidetay.Show
takiplidetay.TextBox1.Text = rs.Fields(3)
Not: deneme amaçlı olarak
rs.Open "SELECT * FROM takiplipersonel WHERE sicil ='" & ListBox1.ListIndex & "'", baglan, adOpenKeyset, adLockPessimistic
satırının altına
msgbox "kayıt sayısı" & rs.recordcount & vbnewline & "Sicil: " & rs("sicil")
kodunu ekler misiniz? böylece kayıt sayısını ve sicil no mesaj olarak gösterilir
Kod:
rs.Open "SELECT * FROM takiplipersonel WHERE sicil ='" & ListBox1.ListIndex & "'", baglan, adOpenKeyset, adLockPessimistic
msgbox "kayıt sayısı" & rs.recordcount & vbnewline & "Sicil: " & rs("sicil")
gibi
Denedim ancak yine boş geliyor hocam, sizinde değerli vaktinizi aldım çok teşekkür ediyorum. Ben biraz daha araştırayım
 
Katılım
2 Temmuz 2014
Mesajlar
145
Excel Vers. ve Dili
2021 Türkçe, 64bit
ekrana mesaj kutusu geldi mi
kaç kayıt olduğunu söyledi mi?
sicil alanı tablonuzda kaçıncı sırada?
rs(3) hangi alan tabloda orada değer var mı
isterseniz dış siteye örnek dosyanızı ekleyin inceleyelim
 

Astalavista58

Altın Üye
Katılım
20 Ocak 2020
Mesajlar
242
Excel Vers. ve Dili
Office 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
20-02-2025
Hocam;
Mesaj kutusunda yine ölçüt hatası veriyor,
Sicil alanı ikinci sütunda ve sayı olarak tanımlı,
rs(3) acceste "takiplipersonel" tablosunda ve tabloda değerlerim var,

Şuan accesteki verilerde hep personel bilgileri bulunduğundan maalesef yükleyemiyorum

Listİndex seçtiğim satırın değerini buluyor ancak sonrası gelmiyor
 
Katılım
2 Temmuz 2014
Mesajlar
145
Excel Vers. ve Dili
2021 Türkçe, 64bit
yeni bir access dosyası oluşturun içinde bir tek sahte takiplipersonel tablosu olsun, 3-5 sahte kayıt ekleyin
excelden de sadece ilgili formu ve ilk mesajdaki kodun çalışabileceği kısımları ekleyin yeterli olur
 
Katılım
2 Temmuz 2014
Mesajlar
145
Excel Vers. ve Dili
2021 Türkçe, 64bit
aşağıdaki kodu dener misiniz?
Not : textbox1, sicil alanını gösteriyor oysa rs(2), rütbeyi o nedenle atamayı rs(1)'e göre yaptım
Not2: sicil atama için ListBox1.ListIndex kullanmışsınız ama ListBox1.ListIndex sadece seçili satırın kaçıncı olduğunu gösterir sicil noyu göstermez
dilerim işinize yarar
Kod:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

Dim baglan As New Connection
Dim rs As New Recordset
Dim dbPath As String


dbPath = ThisWorkbook.Path & "\DB.accdb"
baglan.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbPath

rs.Open "SELECT * FROM takiplipersonel WHERE sicil =" & ListBox1.List(ListBox1.ListIndex, 1), baglan, adOpenKeyset, adLockPessimistic
takiplidetay.TextBox1.Text = rs.Fields(1)
takiplidetay.Show

rs.Close
baglan.Close
End Sub
 

Astalavista58

Altın Üye
Katılım
20 Ocak 2020
Mesajlar
242
Excel Vers. ve Dili
Office 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
20-02-2025
Halil hocam çok teşekkür ederim tekrardan Allah razı olsun, ne kadar mutlu olduğumu.anlatamam size. Çok teşekkür ederimm
 
Üst