Top-Themen

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, 6655 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
VBS Ordner erstellen - wenn nicht vorhanden!
Beitrag von 1 Kommentar

Frage von freshman2017 zum Thema VB for Applications

Datenbanken
SQL Abfrage mit Visual Studio
Beitrag von 5 Kommentare

Frage von specialuser zum Thema Datenbanken

Datenbanken
SQL - Abfragen Nachfrage
Beitrag von 2 Kommentare

Frage von PronMaster zum Thema Datenbanken

Datenbanken
SQL-Abfrage - DISTINCT - letztes Datum
Beitrag von 3 Kommentare

Frage von emeriks zum Thema Datenbanken

Neue Wissensbeiträge
MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Beitrag von 4 Kommentare

Anleitung von colinardo zum Thema MikroTik RouterOS

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Beitrag von

Information von BassFishFox zum Thema Sicherheit

Administrator.de Feedback

Entwicklertagebuch: Die Startseite wurde überarbeitet

Beitrag von 5 Kommentare

Information von admtech zum Thema Administrator.de Feedback

Vmware

VMware Desktopprodukte sind verwundbar

Beitrag von

Information von Penny.Cilin zum Thema Vmware

Heiß diskutierte Inhalte
Visual Studio
Vb.net-Tool zum Erzeugen einer Outlook-E-Mail
Beitrag von 24 Kommentare

Frage von ahstax zum Thema Visual Studio

Windows Server
RDP macht Server schneller???
Beitrag von 16 Kommentare

Frage von JaniDJ zum Thema Windows Server

Windows Netzwerk
Netzwerk Neustrukturierung
Beitrag von 16 Kommentare

Frage von IT-Dreamer zum Thema Windows Netzwerk

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Beitrag von 15 Kommentare

Frage von Akcent zum Thema Windows 10