Soru Sql iki tarih arasındaki veriler

Katılım
20 Mayıs 2016
Mesajlar
86
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
23-03-2024
Merhaba bir türlü işin içinden çıkamadım yardımcı olana çok minnettar olacağım.


transfer_id

tarih

bitis_tarih

1

10.08.2023

19.09.2023

2

10.08.2023

11.08.2023

3

10.08.2023

11.08.2023

4

10.08.2023

11.08.2023

5

10.08.2023

 

6

10.08.2023

 

7

10.08.2023

11.08.2023

8

10.08.2023

11.08.2023






transferler sayfamda bu şekilde bir tablom mevcut userform ile 10.08.2023 formatında tarih girdiğim textbox (name = tarih_sec) um mevcut.

yapmaya çalıştığım şey şu;

textbox a 10.08.2023 yazdığım zaman tarih ve bitis_tarihi aralığındaysa eğer satırları getirsin eğer bitis_tarih boş ise bugunun tarihini alsın.
sql kodunda bir türlü yazamadım.

Örnek kodum aşağıdadır.

sqlQuery = "SELECT * FROM [transferler$A:J] WHERE [tarih] <= #" & Format(tarih_sec, "yyyy-mm-dd") & "# AND ([bitis_tarih] IS NULL OR [bitis_tarih] >= #" & Format(tarih_sec, "yyyy-mm-dd") & "#)"



Teşekkür ederim.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,252
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Kendinize uyarlayınız.l
Not deneyerek değil doğrudan yazdım, ama olay anlaşılmıştır sanırım.

Dim BsTarih as long
Dim BtTarih zas long

BsTarih = cdbl(textbox1.value)
if textbox2.value <> "" then
BtTarih = cdbl(textbox2.value)
Else
Bttarih = cdbl(date)
end if

SELECT * From [transferler$A:J] WHERE BsTarih >= Tarih and BtTarih <= bitis_tarih
 
Katılım
15 Mart 2005
Mesajlar
354
Excel Vers. ve Dili
Microsoft 365 En 64 Bit
Altın Üyelik Bitiş Tarihi
20-03-2024
Merhaba,

Alternatif:

C#:
strSQL = " SELECT v.* FROM [transferler$A:J] v " & _
             " INNER JOIN " & _
             " (SELECT [transfer_id], [tarih], IIf([bitis_tarih] IS NULL, Date(), [bitis_tarih]) AS BitisTarihi  " & _
                "FROM [transferler$A:J] ) t1" & _
             " ON t1.[transfer_id] = v.[transfer_id] " & _
             " WHERE v.[tarih] <=  #" & Format(tarih_sec, "yyyy-mm-dd") & "#  " & _
             " AND v.[bitis_tarih] >= #" & Format(tarih_sec, "yyyy-mm-dd") & "# "
 
Katılım
20 Mayıs 2016
Mesajlar
86
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
23-03-2024
Hocam merhaba,
elinize sağlık fakat benim 1 adet textbox'um mevcut datadaki bitis_tarih boş ise algılaması ve bugünü alması gerekiyor.

Merhaba,

Kendinize uyarlayınız.l
Not deneyerek değil doğrudan yazdım, ama olay anlaşılmıştır sanırım.

Dim BsTarih as long
Dim BtTarih zas long

BsTarih = cdbl(textbox1.value)
if textbox2.value <> "" then
BtTarih = cdbl(textbox2.value)
Else
Bttarih = cdbl(date)
end if

SELECT * From [transferler$A:J] WHERE BsTarih >= Tarih and BtTarih <= bitis_tarih


Hocam Merhaba,
kodunuz tam istediğim gibi çalışıyor fakat şöyle bir problem mevcut.
10.08.2023 yazdığımda
olması gerektiği gibi
tarih ve bitis_tarih arasındaki değerleri getiriyor.
tek bir sıkıntı var textbox'a yazdığım tarihi 02.08.2023 e kadar tek tek deniyorum yine kayıtları getiriyor ta ki 01.08.2023'e kadar bu kısımı nasıl değerlendirebiliriz?

Merhaba,

Alternatif:

C#:
strSQL = " SELECT v.* FROM [transferler$A:J] v " & _
             " INNER JOIN " & _
             " (SELECT [transfer_id], [tarih], IIf([bitis_tarih] IS NULL, Date(), [bitis_tarih]) AS BitisTarihi  " & _
                "FROM [transferler$A:J] ) t1" & _
             " ON t1.[transfer_id] = v.[transfer_id] " & _
             " WHERE v.[tarih] <=  #" & Format(tarih_sec, "yyyy-mm-dd") & "#  " & _
             " AND v.[bitis_tarih] >= #" & Format(tarih_sec, "yyyy-mm-dd") & "# "
 
Katılım
15 Mart 2005
Mesajlar
354
Excel Vers. ve Dili
Microsoft 365 En 64 Bit
Altın Üyelik Bitiş Tarihi
20-03-2024
Merhaba,

Örnek dosyayı ekler misiniz.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,252
Excel Vers. ve Dili
Ofis 365 Türkçe
Hocam merhaba,
elinize sağlık fakat benim 1 adet textbox'um mevcut datadaki bitis_tarih boş ise algılaması ve bugünü alması gerekiyor.





Hocam Merhaba,
kodunuz tam istediğim gibi çalışıyor fakat şöyle bir problem mevcut.
10.08.2023 yazdığımda
olması gerektiği gibi
tarih ve bitis_tarih arasındaki değerleri getiriyor.
tek bir sıkıntı var textbox'a yazdığım tarihi 02.08.2023 e kadar tek tek deniyorum yine kayıtları getiriyor ta ki 01.08.2023'e kadar bu kısımı nasıl değerlendirebiliriz?
Valla bir şartta çalışan kod tüm şartlarda çalışması gerek.
Yorum yapamıyorum.
 
Katılım
20 Mayıs 2016
Mesajlar
86
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
23-03-2024
Valla bir şartta çalışan kod tüm şartlarda çalışması gerek.
Yorum yapamıyorum.
beynimin yandığı nokta tam olarak bu hocam zaten php+mysql ile sorguyu çalıştıyorum doğru çalışıyor.
excelde aynı sorgu düzgün çalışmıyor anlam veremiyorum.
Tarihlerle ilgili excelde bir problem yaşıyorum sanırım.


Sizin kodunuz ile benim userform um arasında fark var örnek dosya ekledim şimdi #6 numaralı mesajda.

Siz başlangıç ve bitiş tarihi verdiğim 2 adet textbox var zannetmişsiniz sanırım fakat benim 1 adet textbox um var.Datada 2 adet tarih var textbox a yazdığım tarih datadaki 2 tarihin arasında ise kayıtlar gelsin istiyorum.
 
Katılım
12 Aralık 2015
Mesajlar
1,200
Excel Vers. ve Dili
Türkçe Ofis 2007
Aşağıdaki kod Access de hazırlandı. #8/15/2023# tarihi yerine TextBox'a göre ayarlayın
Kod:
SELECT *
FROM transferler
WHERE tarih<=#8/15/2023# AND IIf(IsNull([bitis_tarih])=True,Date(),[bitis_tarih])>=#8/15/2023#
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,252
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,
Tek tarih var deyince, aşağıdaki gibi olur sanırım.

Zaman nedeniyle kodları baştan sona inceleme şansım yok, siz kodları kendinize göre düzenleyiniz.

Kod:
Dim bsTarih As Long

If texbox1.Value = "" Then
    bsTarih = CDbl(Date)
Else
    bsTarih = CDbl(textbox1.Value)
End If

SELECT * From [transferler$A:J] WHERE BsTarih >= Tarih and BsTarih <= bitis_tarih
 
Üst