ADODB.Recordset ile kimlik noya bağlı personel nolarını comboya almak

Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Kod:
Private Sub UserForm_Initialize()

.....................
    SQLStr = "SELECT DISTINCT PERS_NO FROM [OZLUK$]"
    Dim RecOzlk As ADODB.Recordset:      Set RecOzlk = New ADODB.Recordset
    With RecOzlk
        .Open SQLStr, bagOZLK, adOpenKeyset, adLockOptimistic
        .MoveFirst:        ComboBox95.Clear
            For i = 1 To .RecordCount
               ComboBox95.AddItem .Fields("PERS_NO")
               .MoveNext
            Next i
        .MoveFirst:        ComboBox95.ListIndex = 0
        If CBool(.State And adStateOpen) = True Then .Close
    End With
    Set RecOzlk = Nothing
............

end sub

yukarıdaki kodlar ile bağlantıdaki tüm personel numaralarını comboya alabiliyorum, ancak istediğim TCK_NO bağlı personel numaralarını comboya almak
bunun için satırı
'SQLStr = "SELECT DISTINCT TCK_NO FROM [OZLUK$]"
şeklinde değiştirnce
run time error 3265 hatası veriyor
önerini nedir.?
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,369
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Aşağıdaki değişikliği yaptınız mı?
Kod:
ComboBox95.AddItem .Fields("TCK_NO")
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
not : combobox85 te de Tcno değeri yer alıyor. (personel veritabanından geliyor)
combobox 85 change içinde yazsak olur.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
yaptım hocam combobox 85_change olayına yazmaya karar verdim (mahalli birimler veritabanından örnek varmış elimde) ama şöyle bir sorun var ...........

Kod:
Private Sub ComboBox85_Change()
..........................
[color="red"]    ComboBox95.Clear [/color]  
    Dim RecOzlk As ADODB.Recordset:      Set RecOzlk = New ADODB.Recordset
    basliklar = "TCK_NO, PERS_NO"
    sayfaadi = "[OZLUK$]"
    sorgu = "TCK_NO = " & ComboBox85.Value
    SQLStr = "SELECT DISTINCT " & basliklar & " from " & sayfaadi & " WHERE " & sorgu
    With RecOzlk
        .Open SQLStr, bagOZLK, adOpenKeyset, adLockOptimistic
        .MoveFirst
        If .RecordCount = 0 Then
[color="red"]             MsgBox ComboBox85.Value & " kimlik numaralı kişinin özlük kaydı bulunamadı" [/color] 
        Else
            For i = 1 To .RecordCount
               ComboBox95.AddItem .Fields("PERS_NO")
               .MoveNext
            Next i
        .MoveFirst:        ComboBox95.ListIndex = 0
        If CBool(.State And adStateOpen) = True Then .Close
        End If
    End With
    Set RecOzlk = Nothing
............
end sub
kayıt bulunamadığında comboyu temizlemiyor ve hata mesajı gönderrmiyor
Ayrıca eklediğim olan kişinin personel nosunuda vermiyor
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
hallettim ancak ilginç olan bir şey var

Kod:
Private Sub ComboBox85_Change()
..........................
    Dim Rectc As ADODB.Recordset:      Set Rec... = New 
.......................
    Dim RectcY As ADODB.Recordset:      Set Rec... = New 
...................
    Dim RecOzlk As ADODB.Recordset:      Set RecOzlk = New 
.........
end sub
şeklinde iken hata veren kodlar

Rectc, RecOzlk, RectcY şeklinde sıralayınca hata vermedie sebebi ne olabilir
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,369
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Yapıda problem görünmüyor. Ancak TCK_NO alanının string olarak algılanabileceği ihtimali var. On error resume next ifadesi varsa kaldırın hata satırına bakalım.

Kod:
"TCK_NO = '" & ComboBox85.Value & "'"
olarak deneyin. Olmazsa dosyanızın küçük örneğini eklerseniz onun üzerinden gidelim.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
5. mesajda gözüktüğü şekilde hallettim hocam ama sebebinide merak ediyorum.
 
Üst