• DİKKAT

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

Veritabanından personele ait en son tarihi almak

Katılım
21 Mart 2005
Mesajlar
200
Excel Vers. ve Dili
Ofiice 2013
Arkadaşlar Veri tabanından veri alıyorum. aşağıdaki kodda ilgili yere ne istediğimi yazdım ilgilenirseniz sevinirim. saygılar.

On Error Resume Next
Dim conn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim Nsql As String
Dim kriter
kriter = TextBox1.Value
Set conn = New ADODB.Connection
With conn
.Provider = "Microsoft.JET.OLEDB.4.0"
.Open Application.ActiveWorkbook.Path & "\Dataper.mdb"
End With
Nsql = "SELECT Per.* FROM Per WHERE(((Per.Sicil)='" & kriter & "')) ;"
Set rst = New ADODB.Recordset
With rst
.ActiveConnection = conn
.Open Nsql, conn, adOpenDynamic, adLockBatchOptimistic
End With
If rst.BOF And rst.EOF Then
TextBox5.Value = 0
Else
TextBox2.Value = rst.Fields("Tarih").Value

‘veri tabanında personele ait bir veya birden çok tarih olacağı için birden çok tarih olduğu durumlarda Textbox2’ bugüne en yakın olan tarihi yani en son tarihi getirmesini istiyorum.

End If
Set rst = Nothing
conn.Close
 
Arkadaşlar dosya ekledim yardımcı olursanız sevinirim. açıklama dosyadadır saygılar.
 

Ekli dosyalar

  • Per.rar
    Per.rar
    20.7 KB · Görüntüleme: 15
Kodlarınızı aşağıdaki satırı ilave ediniz.
Kod:
Private Sub CommandButton1_Click()
On Error Resume Next
Dim conn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim Nsql As String
Dim kriter
Dim kriter1
kriter = TextBox1.Value
kriter1 = "01.01.2009"
Set conn = New ADODB.Connection
With conn
.Provider = "Microsoft.JET.OLEDB.4.0"
.Open Application.ActiveWorkbook.Path & "\Dataper.mdb"
End With
Nsql = "SELECT * FROM Per WHERE(((Sicil)='" & kriter & "'));"
Set rst = New ADODB.Recordset
With rst
.ActiveConnection = conn
.Open Nsql, conn, adOpenDynamic, adLockBatchOptimistic
End With
[COLOR=blue]rst.MoveLast[/COLOR]
If rst.BOF And rst.EOF Then
TextBox2.Value = 0
Else
TextBox2.Value = rst.Fields("Tarih").Value
End If
Set rst = Nothing
conn.Close
End Sub
 
Sayın Recep İpek cevabınız için teşekkür ederim. yalnız benim gönderdiğim dosyayı kısa yaptığım için sicile ait tarihleri ard arda gelecek şekilde sıraladım. verdiğiniz kod sicile ait kayıt edilmiş verilerden en son veriyi alıyor. karışık olarak kaydedilen tarihlerde ise en son hangi tarih kayıtlı ise onu texybox a alıyor. benin istediğim aynı sicile ait en büyük tarihi textbox2 ye alması.
 
Evet bende sonradan farkına vardım.Biraz araştırayım.
 
Çözüm o kadar da uzak değilmiş. :D

Kod:
Private Sub CommandButton1_Click()
'On Error Resume Next
Dim conn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim Nsql As String
Dim kriter
Dim kriter1
kriter = TextBox1.Value
kriter1 = "01.01.2009"
Set conn = New ADODB.Connection
With conn
.Provider = "Microsoft.JET.OLEDB.4.0"
.Open Application.ActiveWorkbook.Path & "\Dataper.mdb"
End With
Nsql = "SELECT max(Tarih) as son FROM Per WHERE(((Sicil)='" & kriter & "'));"
Set rst = New ADODB.Recordset
With rst
.ActiveConnection = conn
.Open Nsql, conn, adOpenDynamic, adLockBatchOptimistic
End With
If rst.BOF And rst.EOF Then
TextBox2.Value = 0
Else
TextBox2.Value = rst.Fields("son")
End If
Set rst = Nothing
conn.Close
End Sub
 
Sayın Recep İpek yardımlarınız için size minettarım. saygılarımla.
 
Merhaba,

Bende şql'i şöyle yazmıştım ve çalışmıştı :)

Kod:
Nsql = "SELECT Per.Tarih FROM Per WHERE Per.Sicil='" & kriter & "' and Per.Tarih = " & _
       " (Select Max(Per.Tarih) From Per Where Per.Sicil = '" & kriter & "')"
 
Geri
Üst