Microsoft Excel

Herbers Excel/VBA-Archiv

VBA Fehler mit Datum

Betrifft: VBA Fehler mit Datum von: Snewi
Geschrieben am: 29.07.2014 15:22:16

Hallo, habe folgende SQL Abfrage die im SQL Navigator 100% funktioniert!

SELECT   a.day, a.soll, a.ist, a.soll_fl, a.ist_fl, a.text,
         a.beschreibung, a.dauer, a.art
    FROM v_bericht a
   WHERE a.day >= to_date ('01.05.2014', 'dd.mm.yyyy hh24:mi:ss')
     AND a.day <= to_date ('31.05.2014', 'dd.mm.yyyy hh24:mi:ss')
     AND a.ist <= a.chg
ORDER BY a.day, a.art
Hier kommt dann in VBA der Fehler ORA01841 (Volles) Jahr muss zwischen...... und darf nicht 0 sein!

Wieso 0??????????
Habt ihr ne Idee?

Gruß

  

Betrifft: AW: VBA Fehler mit Datum von: Nepumuk
Geschrieben am: 29.07.2014 16:42:38

Hallo,

das Datum muss folgendes Format haben:

#yyyy-mm-dd#

das kannst du mit folgender Format-Anweisung erzeugen:

Format(DeinDatum, "\#yyyy\-mm\-dd\#")

Gruß
Npumuk


  

Betrifft: AW: VBA Fehler mit Datum von: Snewi
Geschrieben am: 31.07.2014 15:03:01

Hallo, das war es leider nicht! Hab jetzt in meiner View in Oracle die Daten soweit eingegrenzt, dass dieser Fehler nicht mehr kommt! Trotzdem bekomm ich als Ergebnis null zuruck! Kann VBA wenn es in der View ein UNION mehrerer Tabellen gibt?

Gruß


  

Betrifft: AW: VBA Fehler mit Datum von: Snewi
Geschrieben am: 31.07.2014 15:18:17

Also in VBA sieht mein Syntax folgendermassen aus:

Sub Bericht()
Dim strSQL As String
Dim strSheet As String
Dim strZelle As String
Dim iCols As Integer
    
    strSheet = "Bericht"
    strZelle = "A2"
    Sheets(strSheet).Select
    Range(strZelle).Select
        
    strSQL = "SELECT a.day AS Tag, a.soll, a.ist, a.soll_fl, a.ist_fl, a.text, a.beschreibung ,  _
a.Dauer, a.art "
    strSQL = strSQL & "FROM v_ber a "
    strSQL = strSQL & "WHERE a.day >= to_date ('01.05.2014', 'dd.mm.yyyy hh24:mi:ss') "
    strSQL = strSQL & "AND a.day <= to_date ('30.06.2014', 'dd.mm.yyyy hh24:mi:ss') "
    strSQL = strSQL & "ORDER BY a.day, a.art "
    
    Datenbank.DBConnect
    Datenbank.ArcConnection.CommandTimeout = 200
    Set Datenbank.ArcRecSet = Datenbank.ArcConnection.Execute(strSQL)
           
    With Datenbank.ArcRecSet
        For iCols = 0 To .Fields.Count - 1
            Cells(1, iCols + 1).Value = .Fields(iCols).Name
        Next
        Range(Cells(1, 1), Cells(1, .Fields.Count)).Font.Bold = True
        Sheets(strSheet).Range(strZelle).CopyFromRecordset Datenbank.ArcRecSet
    End With
    
    Datenbank.ArcRecSet.Close
    Set Datenbank.ArcRecSet = Nothing
    Datenbank.DBClose
        
End Sub
Das SQL Statement funktioniert mit dem SQL Navigator! In VBA bekomme ich nix zurück! Kann das an der UNION Anweisung in der View liegen?

Was könnte ich hier tun?

Gruß


  

Betrifft: AW: VBA Fehler mit Datum von: Karsten
Geschrieben am: 03.08.2014 15:57:56

Keine Ahnung von Oracle, aber es hat ja offensichtlich was mit dem Datum zu tun. Schau doch mal was in VBA ankommt wenn du nur

SELECT   to_date ('01.05.2014', 'dd.mm.yyyy hh24:mi:ss')
        ,to_date ('31.05.2014', 'dd.mm.yyyy hh24:mi:ss')
selektierst. Wenn es klappt weisst du schon mal, dass es nicht daran liegt.
a.day ist vom Datentype DATE, oder?
ich bekomme nichts zurück heißt, dass das Recordset leer ist, oder?

Viele Grüße
Karsten


 

Beiträge aus den Excel-Beispielen zum Thema "VBA Fehler mit Datum"