Minitab 22 - Sessionbefehle zum ODBC-Import mit im Ziel-Arbeitsblatt hinterlegten Daten
- Erstellt am 14.8.2018
- Überarbeitet am 22.5.2024
- Software: Minitab 22, 21, 20, 19, 18
Minitab 19 und höher
Ich habe Sessionbefehle zum Durchführen eines ODBC-Imports, beispielsweise
ODBC;
Connect "DSN=Dateiquelle;DBQ=C:\Datenquelle.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;UID=admin;";
SQLString "SELECT `Beschreibung`,`Daten`,`ID` FROM `datentabelle` where `Daten` = 3 And `Beschreibung` = 'rot'".
Jetzt will ich diese so abändern, dass Informationen, die im Ziel-Arbeitsblatt bereits hinterlegt sind, für den Import verwendet werden. So seien zum Beispiel die Werte für die einzulesenden Spalten Daten und Beschreibung der Quelldatei in den Spalten C1 und C2 des Zielarbeitsblatts hinterlegt und sollen aus diesen für den Code zum ODBC-Import ausgelesen werden.
↓ | C1 | C2-T |
1 | 3 | rot |
Wie kann ich das tun?
Erläuterung
Die Spalte C1 ist numerisch formatiert. Bitte formatieren Sie daher als erstes diese Spalte als Textspalte um.
Text C1 C1.
Anmerkung: Alternativ könnten Sie als Ausgabespalte eine Drittspalte wählen:
Text C1 C3.
Der Einfachheit halber verwenden wir für dieses Beispiel aber die gleiche Spalte.
Kopieren Sie dann die in den Spalten C1 und C2 hinterlegten Werte sowie die Teile des SQL-Strings um diese Werte herum in die Konstanten K1-K5.
Copy "SELECT `Beschreibung`,`Daten`,`ID` FROM `datentabelle` where `Daten` = " K1.
Copy C1 K2.
Copy " And `Beschreibung` = '" K3.
Copy C2 K4.
Copy "'" K5.
GMacro
ODBCImport
Text C1 C1.
Copy "SELECT `Beschreibung`,`Daten`,`ID` FROM `datentabelle` where `Daten` = " K1.
Copy C1 K2.
Copy " And `Beschreibung` = '" K3.
Copy C2 K4.
Copy "'" K5.
KKCat K1 K2 K2.
KKCat K2 K3 K3.
KKCat K3 K4 K4.
KKCat K4 K5 K5.
ODBC;
Connect "DSN=Dateiquelle;DBQ=C:\Datenquelle.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;UID=admin;";
SQLString K5.
EndMacro
in das Macro eingeben und dieses in den Speicherort für Makros unter Datei: Optionen speichern. Heißt das Makro beispielsweise ODBCImport.mac, so lautet der Befehl zum Aufruf im Feld Befehlszeile:
%ODBCImport
Minitab 18
Ich habe Sessionbefehle zum Durchführen eines ODBC-Imports, beispielsweise
ODBC;
Connect "DSN=Dateiquelle;DBQ=C:\Datenquelle.mdb;DriverId=25;FIL=MS Access;" &
"MaxBufferSize=2048;PageTimeout=5;UID=admin;";
SQLString "SELECT `Beschreibung`,`Daten`,`ID` FROM `datentabelle` where " &
"`Daten` = 3 And `Beschreibung` = 'rot'".
Jetzt will ich diese so abändern, dass Informationen, die im Ziel-Arbeitsblatt bereits hinterlegt sind, für den Import verwendet werden. So seien zum Beispiel die Werte für die einzulesenden Spalten Daten und Beschreibung der Quelldatei in den Spalten C1 und C2 des Zielarbeitsblatts hinterlegt und sollen aus diesen für den Code zum ODBC-Import ausgelesen werden.
↓ | C1 | C2-T |
1 | 3 | rot |
Wie kann ich das tun?
Erläuterung
Die Spalte C1 ist numerisch formatiert. Bitte formatieren Sie daher als erstes diese Spalte als Textspalte um.
Text C1 C1.
Anmerkung: Alternativ könnten Sie als Ausgabespalte eine Drittspalte wählen:
Text C1 C3.
Der Einfachheit halber verwenden wir für dieses Beispiel aber die gleiche Spalte.
Kopieren Sie dann die in den Spalten C1 und C2 hinterlegten Werte in die Konstanten K1 und K2.
Copy C1 K1.
Copy C2 K2.
Danach müssen Sie den String
"`Daten` = 3 And `Beschreibung` = 'rot'".
in den diese Werte einfließen sollen, aufteilen. Nehmen Sie sich dazu das Und-Zeichen
&
zu Hilfe:
"`Daten` = " &
K1 &
" And `Beschreibung` = '" &
K2 &
"'".
Zusammengefasst müssen Sie also den Code
Text C1 C1.
Copy C1 K1.
Copy C2 K2.
ODBC;
Connect "DSN=Dateiquelle;DBQ=C:\Datenquelle.mdb;DriverId=25;FIL=MS Access;" &
"MaxBufferSize=2048;PageTimeout=5;UID=admin;";
SQLString "SELECT `Beschreibung`,`Daten`,`ID` FROM `datentabelle` where " &
"`Daten` = " &
K1 &
" And `Beschreibung` = '" &
K2 &
"'".
in den Befehlszeileneditor eingeben (Bearbeiten: Befehlszeileneditor).
|