ich möchte gern die Anzahl der Datensätze wissen die mit CopyfromRecordset übergeben wurden.
Alternativ dazu wie kann ich dem Bereich in den die Daten geschrieben wurden einen Namen verpassen.
Danke und viele Grüße von der Küste
Hier das Script.
-------------------
Public Sub Stored()
Dim conn, cmd, tmpParam, intValue
Dim strServer, strDatabase, strUserName, strPassword, strConnection
' ADO Konstanten
' Konstanten CommandType
Const adCmdText = 1
Const adCmdTable = 2
Const adCmdStoredProc = 4
Const adCmdFile = 256
Const adCmdTableDirect = 512
' Konstanten ParameterDirection
Const adParamInput = 1
Const adParamInputOutput = 3
Const adParamOutput = 2
Const adParamReturnValue = 4
Const adParamUnknown = 0
' Konstanten ParameterType
Const adBoolean = 11 ' Boolean
Const adLongVarChar = 201 ' String
Const adChar = 129 ' String fixer Laenge
Const adWChar = 130 ' Unicode String fixer Laenge
Const adCurrency = 6 ' Waehrung
Const adDate = 7 ' Datum
Const adDouble = 5 ' Double
Const adInteger = 3 ' Long
Const adSingle = 4 ' Integer
Const adVarChar = 200 ' String variabler Laenge
Const adVarWChar = 202 ' Unicode String variabler Laenge
strServer = "S002"
strDatabase = "U_Intranet"
strUserName = ""
strPassword = ""
strConnection = "Provider=SQLOLEDB;Data Source=" & strServer & ";" & _
"Initial Catalog=" & strDatabase & ";User ID=" & strUserName & ";" & _
"Password=" & strPassword & ";"
Set conn = CreateObject("ADODB.Connection")
conn.Open strConnection
Set cmd = CreateObject("ADODB.Command")
' Stored Procedure des SQL Server 7.0
cmd.CommandText = "sp_Zinsen"
cmd.CommandType = adCmdStoredProc
Set cmd.ActiveConnection = conn
' Werte des InputParameter:
intParamFK_Nr = 2
' Input Parameter uebergeben:
Set tmpParam = cmd.CreateParameter("@paramFK_Nr", adInteger, adParamInput, 4, intParamFK_Nr)
cmd.Parameters.Append tmpParam
' Fuehre Command Objekt aus
Set rs = cmd.Execute
Daten_del 'die alten Daten löschen
For iCols = 0 To rs.fields.Count - 1
Cells(1, iCols + 1).Value = rs.fields(iCols).Name
Next
Range(Cells(1, 1), Cells(1, rs.fields.Count)).Font.Bold = True
Range("A2").CopyFromRecordset rs
z = rs.fields.Count
S = rs.RecordCount 'ergibt immer -1 da verknüpfte Tabelle bzw. RS aus StoredProcedure geliefert
With Worksheets("Tabelle3")
' .Names.Add Name:="Daten", RefersToR1C1:="='Tabelle3'!R1C1:R" & rs.fields.Count & "C" & rs.RecordCount & ""
Stop
End With
rs.Close
conn.Close
Set rs = Nothing
Set tmpParam = Nothing
Set cmd = Nothing
Set conn = Nothing
End Sub
Private Sub Daten_del()
Sheets("Tabelle3").Select 'Tabellensheet in das die Daten kommen
Application.Goto Reference:="Daten"
Selection.ClearContents
End Sub
--------------