Skip to main content

AccessTr.neT


"#, Tarihte Söz Dizimi Hatası

"#, Tarihte Söz Dizimi Hatası

Çözüldü #1
Kod:
Private Sub Komut1_Click()
On Error GoTo Err_Komut1_Click

    Dim stDocName As String
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim sql As String

    Set db = CurrentDb
   
    sql = "SELECT ID, Tarih, Islem, Uye, Aciklama, Tutar, EvrakTur, EvrakTarih, EvrakNo, Odtarihi, TurTipi " & _
          "FROM T030_BankalarIslem " & _
          "WHERE Month([Tarih]) = 3 AND TurTipi IN ('GELİR', 'ÜYE GELİR')"

    Set rs = db.OpenRecordset(sql, dbOpenSnapshot)

    If rs.EOF Then
        MsgBox "Aktarılacak veri bulunmamaktadır. Lütfen veri seçin.", vbExclamation, "Hata"
        Exit Sub
    End If

    Debug.Print "Tarih Alanı: " & rs!Tarih

    Do While Not rs.EOF
        If Not IsNull(rs!Tarih) Then
            Debug.Print "Tarih: " & rs!Tarih
        Else
            Debug.Print "Tarih değeri yok."
        End If
       
        db.Execute "INSERT INTO tblListe0 (Tarih, Islem, Uye, Aciklama, Tutar, EvrakTur, EvrakTarih, EvrakNo, Odtarihi, TurTipi) " & _
                  "VALUES (#" & Format(rs!Tarih, "dd-mm-yyyy") & "#, '" & rs!Islem & "', '" & rs!Uye & "', '" & rs!Aciklama & "', " & rs!Tutar & ", '" & rs!EvrakTur & "', #" & Format(rs!EvrakTarih, "dd-mm-yyyy") & "#, '" & rs!EvrakNo & "', #" & Format(rs!Odtarihi, "dd-mm-yyyy") & "#, '" & rs!TurTipi & "')"

        rs.MoveNext
    Loop
   
    rs.Close
    Set rs = Nothing

    stDocName = "Rapor6"
    DoCmd.OpenReport stDocName, acPreview

Exit_Komut1_Click:
    Set db = Nothing
    Exit Sub

Err_Komut1_Click:
    MsgBox "Hata: " & Err.Description
    Resume Exit_Komut1_Click

End Sub

Raporu açmaya çalıştığımda # sorgu ifadesi içindeki tarihte söz dizimi hatası verdi. Tarihi dd-mm-yyyy v.b şekillerde denedim ama değişik şekillerde tarıhte söz dizimi hatası verdi. Şimdiden teşekkürler
Son Düzenleme: 19/05/2025, 15:20, Düzenleyen: HORZUM.
Cevapla
#2
Formatta kullandığınız "mm-dd-yyyy" içerisinde düz çizgi yerine / işaretini kullanın, Yani "mm/dd/yyyy" gibi.
 İyi olan tek şey bilgi ve kötü olan tek şey de cehalettir. (Sokrates)
Cevapla
#3
(19/05/2025, 17:05)onur_can yazdı: Formatta kullandığınız "mm-dd-yyyy" içerisinde düz çizgi yerine / işaretini kullanın, Yani "mm/dd/yyyy" gibi.

#03.24.2025 sorgu ifadesi içindeki tarihte söz dizimi hatası.
Cevapla
#4
dosyanız olmadığı için önerim hatalı olabilir ama siz tarih alanları için (#" & Format(rs!Tarih, "dd-mm-yyyy") & "#
yani tarih olsa da olmasa da # kullandığınız için boş tarihlerde ## geliyor hatanın sebebi bu olabilir
Cevapla
#5
(19/05/2025, 15:14)HORZUM yazdı: db.Execute "INSERT INTO tblListe0 (Tarih, Islem, Uye, Aciklama, Tutar, EvrakTur, EvrakTarih, EvrakNo, Odtarihi, TurTipi) " & _
                  "VALUES (#" & Format(rs!Tarih, "dd-mm-yyyy") & "#, '" & rs!Islem & "', '" & rs!Uye & "', '" & rs!Aciklama & "', " & rs!Tutar & ", '" & rs!EvrakTur & "', #" & Format(rs!EvrakTarih, "dd-mm-yyyy") & "#, '" & rs!EvrakNo & "', #" & Format(rs!Odtarihi, "dd-mm-yyyy") & "#, '" & rs!TurTipi & "')"
yukardaki kısmı aşağıdaki gibi değiştirip dener misiniz?
       xSql = "INSERT INTO tblListe0 (Tarih, Islem, Uye, Aciklama, Tutar, EvrakTur, EvrakTarih, EvrakNo, Odtarihi, TurTipi) " & _
"VALUES ( " & CLng(rs!Tarih) & ", '" & rs!Islem & "', '" & rs!Uye & "', '" & rs!Aciklama & "', " & rs!Tutar & ", '" & rs!EvrakTur & "'," & CLng(rs!Tarih) & ", '" & rs!EvrakNo & "'," & CLng(rs!Tarih) & ", '" & rs!TurTipi & "')"
db.Execute xSql
Not: kodunuzda döngü kullanmanıza gerek var mı? anladığım kadarıyla WHERE Month([Tarih]) = 3 AND TurTipi IN ('GELİR', 'ÜYE GELİR') koşulunu sağlayan her kayıt tblListe0 tablosuna aktarılıyor. döngü yerine aşağıdaki kodla tek seferde eklenebilir
Komut1 düğmesinin kodunu aşağıdaki kodla değiştirip dener misiniz?
Sub Komut1_Click()

Dim xSQL As String

' Sql sorgusu: Verileri seç ve var olan tabloya ekle
xSQL = "INSERT INTO tblListe0 (Tarih, Islem, Uye, Aciklama, Tutar, EvrakTur, EvrakTarih, EvrakNo, Odtarihi, TurTipi) " & _
"SELECT Tarih, Islem, Uye, Aciklama, Tutar, EvrakTur, EvrakTarih, EvrakNo, Odtarihi, TurTipi " & _
"FROM T030_BankalarIslem " & _
"WHERE Month([Tarih]) = 3 AND TurTipi IN ('GELİR', 'ÜYE GELİR');"

' xSQL komutunu çalıştır
Set db = CurrentDb
db.Execute xSQL
Debug.Print db.RecordsAffected, "Veriler HedefTablo'ya eklendi."

End Sub
Cevapla
#6
Örnek dosya ekleyebilirseniz daha hızlı çözüm alabilirsiniz.
 İyi olan tek şey bilgi ve kötü olan tek şey de cehalettir. (Sokrates)
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task