• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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

  • Konbuyu başlatan Konbuyu başlatan hsayar
  • Başlangıç tarihi Başlangıç tarihi
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.?
 
Aşağıdaki değişikliği yaptınız mı?
Kod:
ComboBox95.AddItem .Fields("TCK_NO")
 
not : combobox85 te de Tcno değeri yer alıyor. (personel veritabanından geliyor)
combobox 85 change içinde yazsak olur.
 
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
 
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
 
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.
 
5. mesajda gözüktüğü şekilde hallettim hocam ama sebebinide merak ediyorum.
 
Geri
Üst