ADODB Tarih Sorgulama

bluefalcon

Altın Üye
Altın Üye
Katılım
22 Aralık 2005
Mesajlar
418
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
03.12.2025
Arkadaşlar merhaba,
Öğrendiklerimi uygulayabilmek adına kendi çapımda uygulamalar geliştirmeye çalışıyorum. Üzerinde çalıştığım uygulamada daha önce aynı kaydın access veritabanında olup olmadığını kontrol ettirmek için aşağıdaki kodu kullanmaya çalıştım ama sürekli hata aldım. Aşağıdaki kod satırında VERI_TABANI bir değişken olarak önceden tanımlı ve araç plakası da userformdan geliyor. AND sonrasındaki kısım aracın çıkış tarihini yine userform üzerindeki bir label'den alarak yapmasını istiyorum ancak bir türlü çalıştıramadım. Değişkenler doğru atanıyor ancak hata olarak veri tip uyumsuzluğu diyor. Biraz araştırma yaptığımda tarih sorgulamada format farklılıkları nedeniyle bu hatayı olabiliyormuş ve ifadelerin başına # eklendiğinde sorunun çözüldüğünü okudum ama denediğimde bu da fayda etmedi. Bir fikriniz varsa paylaşabilir misiniz?

Kod:
tanimcikiskaydi = "SELECT * FROM [" & VERI_TABANI & "] WHERE ARACPLAKASI='" & .txtArPLK & "'And CIKISTARIH  ='" & .lbNOWd & "'"
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,323
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Tarihle ilgili değişkenlerinizi aşağıdaki örnekte olduğu gibi tanımlayarak deneyin ...

Rich (BB code):
Private Sub CommandButton1_Click()
'   Haluk - 09/01/2020
'   sa4truss@gmail.com
    Dim myFile As String, dateStart As Double, dateEnd As Double
    Dim daoDBEngine As Object
    Dim DB As Object
    Dim RS As Object

    On Error Resume Next
        Set daoDBEngine = CreateObject("DAO.DBEngine")
        Set daoDBEngine = CreateObject("DAO.DBEngine.36")
        Set daoDBEngine = CreateObject("DAO.DBEngine.120")
    On Error GoTo 0

    myFile = ThisWorkbook.FullName

    dateStart = CDbl(CDate(TextBox1))
    dateEnd = CDbl(CDate(TextBox2))

    Set DB = daoDBEngine.OpenDatabase(myFile, False, False, "Excel 8.0; HDR=YES; IMEX=1;")
    Set RS = DB.OpenRecordset("Select sum([VERİ]) as [ToplamVeri] from [Sayfa1$] where " & _
                              "[TARİH] between " & dateStart & " and " & dateEnd)

    TextBox3 = RS("ToplamVeri")

    RS.Close
    DB.Close
    Set RS = Nothing
    Set DB = Nothing
    Set daoDBEngine = Nothing
End Sub
 
Son düzenleme:

bluefalcon

Altın Üye
Altın Üye
Katılım
22 Aralık 2005
Mesajlar
418
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
03.12.2025
Haluk Bey ilginize teşekkür ediyorum, dediğiniz gibi yaparak Tarih = CDbl(CDate(.lbNOWd)) şeklinde bir değişken tanımladım ve kod satırını aşağıdaki şekilde revize ettim. Ancak yine aynı hatayı verdi :(

tanimcikiskaydi = "SELECT * FROM [" & VERI_TABANI & "] WHERE ARACPLAKASI='" & .txtArPLK & "'And CIKISTARIH ='" & Tarih & "'"
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,323
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Dosyayı görmeden birşey söylemek zor ama .... SQL sorgusunun sonundaki Tarih değişkenin başında ve sonundaki tırnak işaretlerini kaldırın, o artık "String" değil ....

.
 

bluefalcon

Altın Üye
Altın Üye
Katılım
22 Aralık 2005
Mesajlar
418
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
03.12.2025
İlginize teşekkür ediyorum Haluk Bey, aslına bakarsanız size hak veriyorum, dosyayı görmeden mantık yürütebilmek çok zor. Yalnız dosyanın içeriği o kadar karışık ki hangi modül hangi alandan veri alıyor size çok detaylı anlatmam gerekir ki o kadar vaktinizi almak istemem. Dediğiniz gibi yaparak tırnak işaretlerini de kaldırdım, aşağıdaki gibi yaptığımda söz dizimi hatası verdi. Sanırım vazgeçeceğim.

Kod:
tanimcikiskaydi = "SELECT * FROM [" & VERI_TABANI & "] WHERE ARACPLAKASI='" & .txtArPLK & "'And CIKISTARIH  =" & Tarih
 
Üst