-
Spaltenüberschriften aus VBA sql-Statement in Excel ausgeben
geschätzte Leute,
leider werden bei diesem VBA-Script die in sql definierten Spaltenüberschriften (Filiale, Kunde und Inhalt) nicht mit in die Excel-Tabelle übernommen.
Hat jemand eine Idee?
LG
RR
Sub lesen()
Dim Filiale As String
Dim Kunde As String
Dim Inhalt As String
Set CS = CreateObject("ADODB.Connection")
Set RS = CreateObject("ADODB.Recordset")
'Retrieve values from Cells on the sheet to use as selections in the query below
Filiale = ActiveSheet.Range("B1").Value
Kunde = ActiveSheet.Range("D1").Value
Inhalt = ActiveSheet.Range("F1").Value
'MsgBox (Filiale)
'ISeries connection String
ConnectString = "Driver={ISeries Access ODBC Driver};System=xxx.xxx.xx.x;Uid=xxxxxxxx;Pwd=xxxxx xxx;Library=xxxxxxxx;QueryTimeout=0"
CS.Open (ConnectString)
sqlstring = "select chd1cd as Filiale, chd3cd as Kunde, cthptx as Inhalt" & _
" from y2svgen.svkopfv1 "
sqlstring = sqlstring & " where chd1cd = '" & Filiale & "'"
If Kunde <> "" Then
sqlstring = sqlstring & " and chd3cd = '" & Kunde & "'"
End If
If Inhalt <> "" Then
sqlstring = sqlstring & " and upper(cthptx) like upper('%" & Inhalt & "%')"
End If
'Message box can be used for debugging the SQL statement
MsgBox (sqlstring)
RS.Open sqlstring, CS
'Clear Previous contents of Cells
Cells.Select
ActiveSheet.Range("A7:Z65535").ClearContents
'copy the Recordset to excel sheet starting at A7
ActiveSheet.Range("A7").CopyFromRecordset RS
'Close Connection And Recordset
RS.Close
CS.Close
'Reset cell back to A1
ActiveSheet.Range("A1").Select
End Sub
-
Hallo,mußt Du mal suchen, war schon ein paar mal Thema hier.GG
-
Hallo.
VBA kenne ich jetzt nicht so ... aber in c# mache ich folgendes. Ich fülle die Datatable und dann ...
DataColumnCollection dcc = mdtMailPlus.Columns;
for (int i = 0; i < mdtMailPlus.Columns.Count; i++)
{
oSheet.Cells[Zeile, i + Spalte] = dcc[i].ColumnName.ToString();
}
Vielleicht geht so was ja auch in VBA :-)
Gruß aus Flensburg
Ralf
-
Warum eigentlich so kompliziert?
Über Daten->Aus anderen Quellen->MS-Query kann man parametrierte SQL's definieren.
Parameter schreibt man in SQL mit "?", also
select ... from myfile where key1 = ? and key2 like '%' concat ? concat '%' ...
Die ? werden von MS-Query beim Ausführen angefordert.
Nach der Rückgabe nach Excel kann man über die Eigenschaften der Abfrage jedem ? eine Zelle zuordnen und auch entscheiden, ob die Feldüberschriften mit ausgegeben werden sollen.
Ansonsten musst du das halt wie oben beschrieben selber machen.
-
Geschätzter Fürchau,
deinen Vorschlag mit dem Query-Assistenten habe ich bereits früher angewendet.
Vba habe ich nur aus dem einen Grund verwendet, um das sql-Statement variabel zusammenstellen zu können. Ich möchte eine where bzw. and-Abfrage nur dann ausführen, wenn das entsprechende Filterfeld gefüllt ist. Hat man diese Möglichkeit auch mit dem Query-Assistenten?
LG
rr
-
Nein so nicht, aber mit intelligentem case-ausdruck könnte das klappen.
-
hallo Fürchau,
also dein Vorschlag mit "key2 like '%' concat ? concat '%' ..." wunderbar, hat sofort geklappt!
Vielleicht noch ein paar Erläuterungen, wie ich eine where bzw. and-Abfrage nur unter bestimmten Bedingungen ausführen kann.
Vielen Dank!
RR
-
In embedded SQL kann ich den selben Parameter (Hostvariable) ja immer wieder nehmen. In ODBC benötige ich jedesmal ein neues "?". Aber wenn ich diese dann der selben Zelle zuweise dann geht es auch wieder.
Beispiel im Embedded:
where ... and
case
when ? = 0 then 1 -- Hier ggf. halt gegen Blank prüfen bei Zeichen
when keyx = ? then 1
else 0
end = 1
and ...
-
Problem gelöst.
Vielen Dank an alle Beteiligten.
Similar Threads
-
By AK1 in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 29-01-15, 11:35
-
By Mädele in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 27-02-03, 19:08
-
By qiwi2000 in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 26-04-02, 07:51
-
By Matthias.Hayn in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 27-11-01, 11:28
-
By hs in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 13-06-01, 14:22
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks