Hallo Leute,
habe folgendes Problem.
Ich habe eine main funktion welche alle Funktionen nacheinander ausführt ( es ist keine Form erforderlich ).
Am Anfang wird eine SQL Abfrage gemacht welche aus einer Datenbank nacheinander Einträge suchen und in einen Array schreiben soll.
Diesen soll er dann in die Mainfunktion zurückgeben.
Allerdings wird mir immer der Fehler "Type dismatch" gemeldet.
Hier mal ein paar Programmschnipsel.
Ich brauche eigentlich nur in der Startprozedur dann alle Computer in einem Array gelistet, bekomme aber nur Fehler.
Hat jemand nen Rat wie ich das machen könnte das es dann geht?
habe folgendes Problem.
Ich habe eine main funktion welche alle Funktionen nacheinander ausführt ( es ist keine Form erforderlich ).
Am Anfang wird eine SQL Abfrage gemacht welche aus einer Datenbank nacheinander Einträge suchen und in einen Array schreiben soll.
Diesen soll er dann in die Mainfunktion zurückgeben.
Allerdings wird mir immer der Fehler "Type dismatch" gemeldet.
Hier mal ein paar Programmschnipsel.
Code:
Aus der Main:
Dim result() As String
result = cl_SQL_Commands.Comp_auslesen
Code:
die cl_SQL_Commands:
Dim Line_Type() As String
Dim SQLCommand As String
Dim SearchString As String
Dim SearchResult As String
Dim OutPutItem As String
Dim SQL As New cl_access_SQL
SQLCommand = "SELECT * from Tabelle;"
SearchString = "ComputerName"
SearchResult = "?"
OutPutItem = "ComputerName"
Line_Type = SQL.SendSQL(SQLCommand, SearchString, SearchResult, OutPutItem)
Comp_auslesen = Line_Type
Code:
Und hier die cl_access_SQL:
Public Function SendSQL(ByVal SQLCommand As String, ByVal SearchString As String, ByVal SearchResult As String, ByVal OutPutItem As String) As String
Dim Conn As ADODB.Connection
Dim RS As ADODB.Recordset
Dim result() As String
Dim Inifile
Dim dbDatabase
Dim dbServer
Dim dbUser
Dim dbPasswd
Inifile = cl_inifile.IniPath()
dbDatabase = GetINISetting(Inifile, "Database", "dbname", "")
dbServer = GetINISetting(Inifile, "Database", "dbserver", "")
dbUser = GetINISetting(Inifile, "Database", "dbuser", "")
dbPasswd = GetINISetting(Inifile, "Database", "dbpasswd", "")
If Len(dbDatabase) = 0 Or Len(dbServer) = 0 Or Len(dbUser) = 0 Or Len(dbPasswd) = 0 Then
End
End If
Set Conn = New ADODB.Connection
Conn.Provider = "MSDASQL"
Conn.Mode = adModeRead
Conn.CursorLocation = adUseClient
Conn.Open "DRIVER={SQL Server};" & _
"DATABASE=" & dbDatabase & ";" & _
"SERVER=" & dbServer & ";", _
"" & dbUser & "", "" & dbPasswd & ""
Set RS = New ADODB.Recordset
RS.CursorLocation = adUseClient
RS.Source = SQLCommand
Set RS.ActiveConnection = Conn
RS.CursorType = adOpenForwardOnly
RS.LockType = adLockReadOnly
RS.Open
Dim i
i = 0
Do While Not RS.EOF
result(i) = RS.Fields.Item(OutPutItem).Value
i = i + 1
RS.MoveNext
Loop
RS.Close
Set RS = Nothing
Conn.Close
Set Conn = Nothing
SendSQL = result
End Function
Ich brauche eigentlich nur in der Startprozedur dann alle Computer in einem Array gelistet, bekomme aber nur Fehler.
Hat jemand nen Rat wie ich das machen könnte das es dann geht?