Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
916to920
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
916to920
916to920
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Datum als Variable definieren - externe Daten

Datum als Variable definieren - externe Daten
18.10.2007 11:29:14
Schroeder
Hallo,
ich habe ein Problem mit dem Auslesen eines Datumfeldes aus einer Accesdatenbank.
Das Datumsfeld sieht in Access so aus: 17.10.2007 00:00
Nun möchte ich in Excel die zugehörigen Daten möglichst mit Angabe des Datum auslesen:

Sub riscaserv()
' riscaserv Macro
' Macro recorded 16.10.2007 by xn04553
Dim DATUM As Date
DATUM = Sheets("riscaserv").Range("E2").Value
Range("C4").Select
With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=MS Access Database;DBQ=K:\Themes\THE07033\RisCaServ\basedata_history.mdb; _
DefaultDir=K:\Themes\THE07033\RisCaServ;DriverId=2" _
), Array("5;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;")), Destination:= _
Range("C4"))
.CommandText = Array( _
"SELECT PriceHistory.WKN, PriceHistory.Kurs, PriceHistory.PriceTime" & Chr(13) & "" & Chr(10) &  _
_
"FROM `K:\Themes\THE07033\RisCaServ\basedata_history`.PriceHistory PriceHistory" & Chr(13) & ""  _
& Chr(10) & "WHERE (PriceHistory.PriceTime={ts '2007-10-16 00:00:" _
, "00'})")
.Name = "Query from MS Access Database_5"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
End Sub


Vielleicht kann mir jemand einen Tip geben wie ich die Variable DATUM definieren muß, bzw. was im SQL-Statement stehen muß.
Danke.
Grüsse

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum als Variable definieren - externe Daten
18.10.2007 12:36:00
Wolli
Hallo Schröder, ich bin nicht sicher, ob es funktioniert, aber wenn Du einen Datumswert hast, kannst Du ihn beliebig formatieren und als String ausgeben.
Um "17.10.2007 00:00" zu erhalten, schreibst Du in VBA

... format(MeinDatum,"DD.MM.YYYY hh:mm")


(Das entspricht der Tabellenfunktion =TEXT(A1;"TT.MM.JJJJ hh:mm)
Wenn Du das an Access übergibst, könnte es klappen.
Gruß, Wolli

AW: Datum als Variable definieren - externe Daten
18.10.2007 13:16:00
Schroeder
Hallo Wolli,
danke für Deine Antwort.
Ich habe es jetzt mal eingebaut:
Dim DATUM As Date
DATUM = Sheets("riscaserv").Range("E2").Value
Range("E2").Value = Format(Range("E2"), "DD.MM.YYYY hh:mm")
Range("C4").Select
With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=MS Access Database;DBQ=K:\Themes\THE07033\RisCaServ\basedata_history.mdb;DefaultDir=K:\Themes\THE07033\RisCaServ;DriverId=2" _
), Array("5;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;")), Destination:= _
Range("C4"))
.CommandText = Array( _
"SELECT PriceHistory.WKN, PriceHistory.Kurs, PriceHistory.PriceTime" & Chr(13) & "" & Chr(10) & "FROM `K:\Themes\THE07033\RisCaServ\basedata_history`.PriceHistory PriceHistory" & Chr(13) & "" & Chr(10) & "WHERE (PriceHistory.PriceTime='" & DATUM & "')")
.Name = "Query from MS Access Database_5"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
End Sub
Nun kommt immer die Fehlermeldung:
Run-time error '1004'
Die Problemzeile ist:
.Refresh BackgroundQuery:=False
Grüße

Anzeige
AW: Datum als Variable definieren - externe Daten
18.10.2007 15:08:00
Wolli
Versuche

DIM DATUM as String
DATUM = Format(Sheets("riscaserv").Range("E2").Value, "DD.MM.YYYY hh:mm")


statt


DIM DATUM as Date
DATUM = Sheets("riscaserv").Range("E2").Value
Range("E2").Value = Format(Range("E2"), "DD.MM.YYYY hh:mm")


und prüfe den Inhalt von DATUM mit
debug.print DATUM (im Direktbereich beim schrittweisen Ausführen)
Gutes Gelingen + Gruß, Wolli

168 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige