WinCC-SQL Daten, welches Control?

leo

Level-2
Beiträge
518
Reaktionspunkte
126
Zuviel Werbung?
-> Hier kostenlos registrieren
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
 
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.
 
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!
 
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?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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!
 
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
 
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 :(
 
Zurück
Oben