• DİKKAT

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

ADODB Tarih Sorgulama

Katılım
22 Aralık 2005
Mesajlar
423
Excel Vers. ve Dili
Microsoft 365
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 & "'"
 
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:
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 & "'"
 
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 ....

.
 
İ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
 
Geri
Üst