• DİKKAT

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

Sorguda tarih problemi

Katılım
24 Kasım 2007
Mesajlar
769
Excel Vers. ve Dili
Office 365 - Türkçe
Merhaba

Excele giriş yaptığımda ; username, giriş tarihi, ve saatini Access veritrabanına işlettiriyorum. Benim yapmak istediğim girdiğim tarihten önceki (kayıtları) girişleride sildirmek.

Kayıtlarıda esasında sildiriyorum, lakin giriş yaptığım şu an ki güncel tarihide siliyor. Sorunum bu kısımda önce tarihi sildir, sonra giriş yaptığın tarihi yazdır
diyebilirsiniz. Lakin bu olayı yapmak istemiyorum. Bu haliyle bu sorunu nasıl çözebilirm (gg,aa,yyyy, hh:mm) yüzünden olabilir mi ?

Dosyam ektedir
Not : userform1. ilk açıldığında hata alabilirsiniz, kayıt yapılan veriyi sildiği için

Kod:
Private Sub Workbook_Open()
UserForm2.TextBox1 = ""
AKullanici = "'" & Environ("username") & "'"
ADurum = "'Online'"
AGiris = "'" & Now & "'"
Call baglanti
Set rs = baglan.Execute("INSERT INTO TakvimList (Kullanici,Durum,Giris) Values (" & AKullanici & "," & ADurum & "," & AGiris & ")")
sorgu = "select max(kimlik) from [Takvimlist]"
rs.Open sorgu, baglan, 1, 1
Sheets(1).Range("A1").CopyFromRecordset rs


'Dosya açıldığında bugünkü girişler haricindeki diğer girişler silinsin
AGirisII = "'" & Today & "'"
Set rs = baglan.Execute("DELETE FROM TakvimList WHERE Giris<>" & AGirisII)


Set baglan = Nothing: Set rs = Nothing
End Sub
 

Ekli dosyalar

Kod:
Set rs = baglan.Execute("DELETE FROM TakvimList WHERE Format(Giris,'#')<>" & Format(AGirisII,'#')

Olarak değiştirdim, lakin daha kod kısmında kırmızı renk ile uyarı verdi, sanıyorum eksik bir şey var parantez, virgül, felan
 
Kod:
Set rs = baglan.Execute[COLOR="Red"]([/COLOR]"DELETE FROM TakvimList WHERE Format(Giris,'#')<>" & Format(AGirisII,'#')

kırmızı renkli parantezin kapanışı yok
 
Kod:
Set rs = baglan.Execute("DELETE FROM TakvimList WHERE Format(Giris,'#')<>" & Format(AGirisII,'#'))

Parantezi kapattığımda da aynı şekilde uyarı veriyor
 
pardon dışardaki tırnakların normal olması lazım:) bu şekilde denermisiniz
Kod:
Set rs = baglan.Execute("DELETE FROM TakvimList WHERE Format(Giris,'#')<>" & Format(AGirisII, "#"))
 
sayın merakli_72
kod bu kez oldu, sağ olun
lakin, giriş yaptığım tarihi silme problemi devam ediyor (bugünün tarihini siliyor)
 
Bu sefer kodlarınızı inceledim, önceki yazılanlar biraz ezberdi :)
Mantık hatası yaptığınızı düşündüğüm yerleri aşağıdaki gibi düzelttim
denedim sorun yok, istediğiniz bu muydu inceleyebilirmisiniz


Kod:
Private Sub Workbook_Open()


UserForm2.TextBox1 = ""
AKullanici = "'" & Environ("username") & "'"
ADurum = "'Online'"
AGiris = "'" & Now & "'"
Call baglanti
Set rs = baglan.Execute("INSERT INTO TakvimList (Kullanici,Durum,Giris) Values (" & AKullanici & "," & ADurum & "," & AGiris & ")")
sorgu = "select max(kimlik) from [Takvimlist]"
rs.Open sorgu, baglan, 1, 1
Sheets(1).Range("A1").CopyFromRecordset rs


'Dosya açıldığında bugünkü girişler haricindeki diğer girişler silinsin
AGirisII = "'" & today & "'"
Set rs = baglan.Execute("DELETE FROM TakvimList WHERE Giris<" & AGiris)


Set baglan = Nothing: Set rs = Nothing
End Sub
 
sayın merrakli_72
yeni deneme fırsatım oldu, Giris<" & AGiris kodu kullanınca, en son girilen tarihten itibaren hepsini siliyor. Örneğin gün içerisinde birkaç kez giriş yapıldı, lakin son girişten sonraki tarihleri sildiği için, (gün içindeki girişler) bu girişleri göremiyorum

O yüzden ben Giris<>" & AGiris kodu kullanmaya çalıştım, gün içerisindeki girişleri sakla, diğer günleri sil olarak, Lakin olmadı
 
çözdüm, BUGÜN() formülünden dolayı, today olur düşüncesindeydim. Date denedim oldu, formatlarıda dd.mm.yyyy olarak değiştirdim

AGirisII = "'" & Date & "'"
Set rs = baglan.Execute("DELETE FROM TakvimList WHERE Format(Giris,'dd.mm.yyyy')<>" & Format(AGirisII, "dd.mm.yyyy"))
 
Tebrikler :)
Acizane öneri kodlarınızın başına
Kod:
Option Explicit
koyunki böyle hatalarla uğraşmak zorunda kalmazsınız
 
Problem çözülmüş ama bilgi olarak yazayım yine de.

MS Jet VT nin (Access, Excel) sorgudaki tarih biçimi aşağıdaki gibidir :
Kod:
... where [tarih] = [COLOR=Red]#[/COLOR]mm[COLOR=Red][B]/[/B][/COLOR]dd[COLOR=Red][B]/[/B][/COLOR]yyyy[COLOR=Red]#[/COLOR]
Tarihlerin "format" fonksiyonu ile kullanılması, yüksek kayıt sayılarında nispeten yavaşlamaya neden olur.

.
 
Geri
Üst