Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
872to876
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
872to876
872to876
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Mehr als 255 Zeichen für SQL-Abfrage über Makro

Mehr als 255 Zeichen für SQL-Abfrage über Makro
30.05.2007 14:13:06
Michael
Hallo!
Ich möchte eine Reihe von (Oracle) SQL-Abfragen über ein VBA-Makro laufen lassen. Nun habe ich folgendes Problem: Wenn ich die SQL-Abfragen für die Variablen einlesen möchte, werden nur die ersten 255 Zeichen je Abfrage gespeichert (lt. Überwachung)....
Hier mein Anfang:
---
Sub daten()
Dim arSQL(7) As Variant 'SQL Abfragen
Dim strTemp As String 'Temp Variable für die Kalenderwoche
Dim i, n, y As Integer
Dim intCWNext As Integer 'Kalenderwoche ohne CW nur als Ganzzahl
'1 - All FR's
arSQL(0) = "SELECT count(TO_CHAR (f.DETECTION_DATE, 'IW')), TO_CHAR (f.DETECTION_DATE, 'IW') FROM tref.fekat_faults f WHERE f.TECHN_PRIORITY ='17.04.2007' group by TO_CHAR (f.DETECTION_DATE, 'IW')"
'2 - All closed FR's
arSQL(1) = "SELECT count(TO_CHAR (f.DETECTION_DATE, 'IW')), TO_CHAR (f.DETECTION_DATE, 'IW') FROM tref.fekat_faults f WHERE f.TECHN_PRIORITY ='17.04.2007' group by TO_CHAR (f.DETECTION_DATE, 'IW')"
'3 - All closed FR's "error"
arSQL(2) = "SELECT count(TO_CHAR (f.DETECTION_DATE, 'IW')), TO_CHAR (f.DETECTION_DATE, 'IW') FROM tref.fekat_faults f WHERE f.TECHN_PRIORITY ='17.04." _
& "2007' and (f.RESULT = 'A' OR exists (select TASK_ID from tref.FEKAT_TASKS t where t.TASK_TYPE='COR'and t.RESULT = ('T' )and t.frnumber=f.frnumber) ) group by TO_CHAR (f.DETECTION_DATE, 'IW')"
----
usw. ...
Die ersten beiden Abfragen liest er noch ein, aber ab der Dritten gibt's Probleme - und die nächsten 5 Abfragen sind noch länger :-(
Ich würde mich über einen Tipp sehr freuen!
Gruß
Michael

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehr als 255 Zeichen für SQL-Abfrage über Makro
30.05.2007 15:17:17
Rolf
Hallo Michael,
versuch's mal damit.
fG
Rolf
Option Explicit

Sub splitSQLString()
MsgBox Join(sqlSplit(arSQL(2)), vbLf)
End Sub



Function sqlSplit(strSQL As String) As Variant
Dim p As Single
Dim i As Integer
p = Int(Len(strSQL) / 200) + 1
ReDim x(p)
If p > 1 Then
For i = 1 To p - 1
x(i) = Mid$(strSQL, (i - 1) * 200 + 1, 200)
Next
End If
x(p) = Right$(strSQL, Len(strSQL) - (p - 1) * 200)
sqlSplit = x
End Function


AW: Mehr als 255 Zeichen für SQL-Abfrage über Makro
30.05.2007 16:19:00
Luschi
Hallo Michael,
ich benutze die Excel-Abfrage-Masche schon lange nicht mehr, weil sie eben so unhandlich ist und bei langen Abfrage-Strings kapituliert.
Für den Datenaustausch zwischen Excel und einer Datenbank (DB) ist ADODB/ADOX die bessere Wahl.
Dafür gibt es in der DB eine Dummy-View, bei der mit Hilfe von ADOX der SQL-Code ausgetauscht
und gespeichert wird.
Durch ADODB wird dann die Select-Abfrage gestartet: "Select * From dummyView".
Man könne aber auch ohne dummyView arbeiten und den gewünschten SQL-Code direkt an die DB
per ADODB abschicken.
Hier ein 1. Link dazu:
http://www.activevb.de/tutorials/tut_ado_db/adodb.html
Darin steht:
ADO ist der Nachfolger von DAO. Über ADO lassen sich fast alle geläufigen Datenbanken zugreifen, egal ob Access, SQL-Server, Oracle (hier ist der Oracle wesentlich stärker als der von Microsoft), Informix oder sonst ein Datenbanksystem. Auch ODBC-Datenquellen, die durch ADO auch hinfällig werden, lassen sich problemlos ansteuern.
Gruß von Luschi
aus klein-Paris
Anzeige

222 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige