Hallo
Ich würde gerne Daten aus einer Datenbank (ISHTTND) auslesen. Diese Datenbank habe ich mit Microsoft Query geöffnet und die richtigen Daten ausgewählt.
Der Teil zwischen # ist der Code, den mir Query generiert um die richtigen Datenpunkte mit den Werten auszugeben.
Irgendwie schaffe ich es nicht ihn richtig einzubauen, damit er die Daten in stSQL schreibt.
Ich hoffe ihr könnt mir weiterhelfen…
Danke
Hier mal der VBA Code
Code:
Sub Populate_Combobox_Recordset()
Dim rst As ADODB.Recordset
Dim stSQL As String
Dim vaData As Variant
Dim k As Long
Verbindung.storeExcelSettigs
'SQL Verbindung Initialisieren
fncConnectToSQL („DIV23!PRJ=Uni_Wzbg!DB=ISHTTND“)
'Create the SQL-statement.
'SQL-Code aus Query um nur die Daten aus TrendLogID 257 auszulesen
stSQL = „SELECT TrendRecord.TrendRecordId, TrendRecord.Value, TrendRecord.TrendLogId, TrendRecord.DateTimeStamp, TrendRecord.ValueType“
"FROM „DIV23!PRJ=Uni_Wzbg!DB=ISHTTND“.dbo.Channel Channel, „DIV23!PRJ=Uni_Wzbg!DB=ISHTTND“.dbo.Designation Designation, „DIV23!PRJ=Uni_Wzbg!DB=ISHTTND“.dbo.TrendRecord TrendRecord
'WHERE (TrendRecord.TrendLogId = 257)
'Verbindung öffen
cnt.Open
'Recordsetobject Instazieren und SQLAbfrage ausführen
Set rst = cnt.Execute(stSQL)
With rst
Set .ActiveConnection = Nothing 'Disconnect the recordset.
k = .Fields.Count
'Populate the array with the whole recordset.
vaData = .GetRows
End With
'Verbindung schließen
cnt.Close
'Manipulate the Combobox’s properties and show the form.
With frmData
With .ListBox1
.Clear
.BoundColumn = k
.List = Application.Transpose(vaData)
.ListIndex = -1
.ColumnCount = 1 'this makes appear the two columns on the combobox
.BoundColumn = 2
End With
.Show vbModeless
End With
frmData.ComboBox1.Value = k
Verbindung.restoreExcelSettigs
'Objekte aus dem Speicher löschen
Set rst = Nothing
Set cnt = Nothing
End Sub
Public Function fncConnectToSQL(stSqlCatalog As String)
'Connectionobject instanzieren
Set cnt = New ADODB.Connection
With cnt
.Provider = „sqloledb“
.Properties(„Data Source“).Value = „localhost\DESIGO“
.Properties(„Initial Catalog“).Value = „DIV23!PRJ=Uni_Wzbg!DB=ISHTTND“
.Properties(„Integrated Security“).Value = „SSPI“
.CursorLocation = adUseClient 'Necesary for creating disconnected recordset.
End With
End Function
Public Sub storeExcelSettigs()
'Geschwindigkeitsoptimierung
With Application
xlCalc = .Calculation
.Calculation = xlCalculationManual
.EnableEvents = False
.ScreenUpdating = False
End With
End Sub