# WinCC-SQL Daten, welches Control?



## leo (17 Oktober 2011)

Hallo zusammen,
nach zweitägigem erfolglosem googeln hoffe ich, dass hier jemand einen Tipp für mich hat. Ich habe in einem Projekt eine Datenverbindung von WinCC (7.0.2.4) zu einem externen MS-SQL Server. Ein. und Auslesen von Daten via ODBC und SQL-Scripten klappt hervorragend. Nur finde ich leider kein .net Control um in WinCC die Tabellen in einem Grid anzuzeigen und Datensätze anzuwählen. Hab das Microsoft SQL-Grid control importiert, aber die DataBindings Eigenschaft scheint nicht zu funktionieren. Die Siemens Hotline sagt, es werden keine Fremdcontrols supportet und das UserArchiv Control lässt sich nicht auf andere Datenbanken "umbiegen".

Wäre für jede Hilfe dankbar,
Leo


----------



## Hotsch (24 Oktober 2011)

Daran bin ich auch verzweifelt. Ich hab dies dann so gelöst, dass ich alles per Hand runterprogrammiert habe. Also ein E/A-Feld für jeden Eintrag in der Tabelle und eins für den "Index".
Die Hilfe von Siemens ist ziemlich unbrauchbar und im Internet findet man auch sehr wenig.


----------



## leo (25 Oktober 2011)

Das "Microsoft Office Spreadsheed 11.0" (ActiveX) leistet gute Dienste. Man kann die ODBC Quelle und den SQL String angeben und schon klappts.


----------



## Krumnix (10 Januar 2012)

leo schrieb:


> Das "Microsoft Office Spreadsheed 11.0" (ActiveX) leistet gute Dienste. Man kann die ODBC Quelle und den SQL String angeben und schon klappts.



Thema ist war bissel her, aber ich bin da grad dran. Weiß einer, wie ich z.B. durch den Druck eines Buttons Daten in eine Zelle dieses Controls schreiben kann?

Danke!


----------



## leo (10 Januar 2012)

Das geht mit VB-Script und SQL Statements. Wie weit bist Du denn? Hast du die ODBC Quelle erstellt? Hast Du mit dem Control Verbindung zur Datenbank?


----------



## Krumnix (11 Januar 2012)

Ja. Das ist alles erstellt.
Nun will ich gerne von extern sozusagen Daten in bestimmte Zellen schreiben.
Das soll durch Klick auf einem Button erfolgen.
Da wäre es gut, wenn ich weiß, wie ich z.B. den Wert aus Zelle A4 lesen könnte und dann in Zelle B5 was schreiben kann.
Hast du da was für mich zum nachlesen?

Danke!


----------



## leo (12 Januar 2012)

Das hier liest z.B. bei Click auf eine Zelle (Script in Controleigenschaft "Selection Change") Werte aus der Zeile und speichert sie in ener anderen SQL Datenbank. If item.ActiveCell.Row >1 ist drin weil das Control dummerweise die Spaltenüberschriften der SQL Tabelle in die erste Zeile schreibt und diese natürlich nicht angewählt werden sollen.

If item.ActiveCell.Row >1 Then             
   Dim ConnSQL, RecSQL, StringSQL, Num, Nam, Tag1 
   Set ConnSQL = CreateObject("ADODB.Connection")
   Set RecSQL  = CreateObject("ADODB.Recordset")
   ConnSQL.Open "Provider=MSDASQL;DSN=SQLServer"

   Tag1 = HMIRuntime.Tags ("i_TNKBEL_Auswahl").Read(1)
   Num = item.ActiveSheet.Cells (item.ActiveCell.Row,1).Value  
   Nam = item.ActiveSheet.Cells (item.ActiveCell.Row,2).Value

   StringSQL = "UPDATE Tankbelegung SET RohNum = '" &Num &"' WHERE TnkIndex = " &Tag1
   Set RecSQL = ConnSQL.Execute (StringSQL) 
   StringSQL = "UPDATE Tankbelegung SET RohNam = '" &Nam &"' WHERE TnkIndex = " &Tag1
   Set RecSQL = ConnSQL.Execute (StringSQL)

   ConnSQL.Close
   Set RecSQL = Nothing
   Set ConnSQL = Nothing
End If


----------



## Krumnix (25 Januar 2012)

Hi. 

Danke erstmal. So läuft das ganze schonmal. 
Jetzt stellt sich aber das nächste Problem an. Wenn der Kunde kein Excel auf dem Rechner installiert haben will, wie kann ich das SpreadSheet nutzen?
Die Version 9.0 ist ja bei Win7 automatisch dabei, wie ich gesehn habe. Wenn ich nun die DLL für das 11.0 kopiere läßt sich diese aber nicht registrieren.
Jemand ne Idee, wie ich das 11er nutzen kann ohne Excel zu installieren?

Das 9er Unterstützt leider die Funktionen des 11ers nicht


----------



## Krumnix (25 Januar 2012)

Ok. Habs selbst gefunden. MS bietet auf seiner Seite ein Update an. 
http://www.microsoft.com/downloads/...2c-402e-4f72-97a5-e0fd290d4b76&displaylang=de


----------



## leo (28 Januar 2012)

Hmm, eigentlich ist die 11er Version auch enthalten (zumindest bei V7 SP2 UPD5).


----------

