Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Mittels VBS eine Maske für SQL-Abfrage erstellen?

Frage Entwicklung

Mitglied: goodbytes

goodbytes (Level 2) - Jetzt verbinden

11.03.2009, aktualisiert 10:08 Uhr, 6638 Aufrufe, 3 Kommentare

Hallo,
ich habe mir eine SQL-Abfrage erstellt, die mir das Ergebnis in eine txt-Datei speichert. Funktioniert auch prima
Die Abfrage rufe ich mit einer Batch auf (nutze dazfür "SQLCMD"); dieigentliche SQL-Abfrage steht in der "Abfrage.txt".

Batch-Datei:
01.
SQLCMD -U ODBC-Zugriff -P odbc -S Server\DATENBANK -d Instanzname -i Abfrage.txt -o Ergebnis.txt -r 1 -R -W -b -s ";"
Abfrage.txt:
01.
SELECT      * 
02.
FROM           [DB_Zählpunkt] RIGHT OUTER JOIN 
03.
                      [DB_Zeile] ON [DB_ZP].Nr_ = [DB_Zeile].ZPNr_ LEFT OUTER JOIN 
04.
                      [DB_Kopf] ON [DB_Zeile].Rechnungsnr_ = [DB_Kopf].Nr_ 
05.
 
06.
WHERE       ([DB_Zeile].Code= 'S') 
07.
                      AND ([DB_Zeile].Gruppe = 'E-003)  
08.
                      AND (([DB_Kopf].[Von-Datum] BETWEEN CONVERT(DATETIME, '2008-01-01 00:00:00', 102) 
09.
                      AND CONVERT(DATETIME, '2008-12-31 00:00:00', 102))  
10.
                      AND ([DB_Kopf].[Bis-Datum] BETWEEN CONVERT(DATETIME, '2008-01-01 00:00:00', 102) 
11.
                      AND CONVERT(DATETIME, '2008-12-31 00:00:00', 102))) 
12.
ORDER BY [DB_Kopf].Nr_
Die Filterkriterien (Code, Gruppe und der Zeitraum) ändere ich immer direkt in der Abfrage.
Nun soll allerdings ein Benutzer, der nichts mit SQL am Hut hat diese Abfrage regelmäßig ausführen (und muss natürlich auch entsprechend auch die Filterkriterien ändern können).

Wie bekomme ich da eine einfache Maske hin, wo er seine Werte einfach übergibt?
Von der "Abfrage.txt" und der Batch soll er ja möglichst gar nichts mitbekommen.

Torsten
Mitglied: godlie
11.03.2009 um 11:22 Uhr
Hallo afaik ist es in VBS net möglich GUI's zu bauen ( lass mich gerne vom Gegentiel überzeugen ).

Aber eine möglichkeit wäre es in html ein vbscript einzubetten, damit wäre die Möglcihekit zur Eingabe gegeben.

hab hier was gefunden: link

grüße
Bitte warten ..
Mitglied: goodbytes
11.03.2009 um 18:24 Uhr
Hallo godlie,
das ist natürlich sehr elegante Variante um schnell eine Oberfläche zu bekommen, vor allem, weil man diese sehr schnell bei Änderungen anpassen kann.

Aber bei der Umsetzung meines speziellen Problems hab ich da so meine Probleme.

Den SQLCMD-Aufruf könnte ich ja direkt in den vbs-Teil einbinden, allerdings nutzt dieser Aufruf ja eine separate Datei, die die reine SQL-Abfrage enthält. Ich muss aber über diese grafische Oberfläche ja die Filterkriterien in dieser Abfrage ändern. Also entweder aus den Ergebnissen der Oberfläche direkt in die Datei schreiben (wie aber dann an die richtige Stelle?), oder den Inhalt der Abfrage-Datei irgendwie direkt mit in die hta-Datei mit reinbringen.

Oder kann man das Problem doch nur mit VB lösen? (VB6 hab ich zumindest noch da.) Da wären natürlich grafische Oberflächen auch möglich. Nur ist mir das zu komplex das hinzubekommen. Man könnte da mit Sicherheit alles gleich komplett reinbekommen, aber da kenne ich mich einfach zu wenig aus.

Torsten
Bitte warten ..
Mitglied: goodbytes
17.03.2009 um 13:24 Uhr
Also diese Umsetzung mittels einer hta-Datei habe ich jetzt hinbekommen. Auch die SQL-Abfrage ist komplett mit drin (ohne Zeilenumbruch in der Zeile "oShell.Run "SQLCMD..."):

01.
<head> 
02.
<title>SQL-Abfrage</title> 
03.
<HTA:APPLICATION 
04.
    APPLICATIONNAME="SQL-Abfrage" 
05.
    SCROLL="no" 
06.
    SINGLEINSTANCE="yes" 
07.
    WINDOWSTATE="normal" 
08.
    SysMenu ="Yes" 
09.
10.
 
11.
<script language="VBScript"> 
12.
 
13.
Dim WScript 
14.
Dim WshShell 
15.
Dim oShell 
16.
 
17.
Set WScript = CreateObject("WScript.Shell") 
18.
Set oShell = CreateObject("WScript.Shell") 
19.
 
20.
oShell.Run "SQLCMD " & "-U ODBC-Zugriff -P odbc -S MeinServer\Instanz -d Datenbank -Q ""USE Datenbank ... (Meine Abfrage)"" -o Ergebnis.txt -r 0 -R -W -b -s " & ";""", 1, True 
21.
 
22.
</script> 
23.
 
24.
</head>
Nun habe ich aber noch ein letztes Problem. Ich kann ja in der hta-Datei Eingabeboxen definieren.
z.B.:

01.
MeineVariable = InputBox("Bitte den Wert eingeben: ","Wert-Eingabe")
Wie kann ich aber nun diese Variable in der enthaltenen SQL-Abfrage nutzen?

Torsten
Bitte warten ..
Ähnliche Inhalte
VB for Applications
gelöst VBS Ordner erstellen - wenn nicht vorhanden! (1)

Frage von freshman2017 zum Thema VB for Applications ...

Datenbanken
gelöst SQL Abfrage mit Visual Studio (5)

Frage von specialuser zum Thema Datenbanken ...

Datenbanken
SQL - Abfragen Nachfrage (2)

Frage von PronMaster zum Thema Datenbanken ...

Datenbanken
gelöst SQL-Abfrage mit MAX() (9)

Frage von FrAmEr zum Thema Datenbanken ...

Neue Wissensbeiträge
Windows Installation

Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen

(8)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Datenschutz

Gefährdeter Datenschutz: Firefox löscht lokale Datenbanken nicht

Information von BassFishFox zum Thema Datenschutz ...

Firewall

PfSense OpenVPN beschleunigen

Tipp von Dobby zum Thema Firewall ...

Utilities

CCleaner 5.33 mit Malware infiziert

(27)

Information von SeaStorm zum Thema Utilities ...

Heiß diskutierte Inhalte
Utilities
CCleaner 5.33 mit Malware infiziert (27)

Information von SeaStorm zum Thema Utilities ...

Festplatten, SSD, Raid
gelöst Problem mit DELL 815R Server und Windows Bluescreen (24)

Frage von Leo-le zum Thema Festplatten, SSD, Raid ...

Windows Systemdateien
Windows bootet nicht mehr Fehlermeldung 0xc0000098 (19)

Frage von franzgoerlich zum Thema Windows Systemdateien ...

Windows Netzwerk
Dateien mit Intelligenz per GPO ins Programmverzeichnis (14)

Frage von erwin.t zum Thema Windows Netzwerk ...