私は50以上の列を持つMS Accessにテーブルを返そうとしており、行は0から5000まで変化する可能性があります。タイプ。SQL Serverストアドプロシージャを介してMS Accessにテーブルを返す
私はストアドプロシージャを実行でき、正常に動作します。データをMS Accessに戻すのに問題があります。
ストアドプロシージャコード:
ALTER PROCEDURE [dbo].[pJDB_Export]
(@dteFrom int,
@dteTo int,
@Veh nvarchar(80))
AS
BEGIN
SET NOCOUNT ON;
DECLARE @stWhere VARCHAR(200)
SELECT DISTINCT [Case]
INTO #tmp
FROM data
WHERE [VEHICLE TYPE] = @Veh
AND (CY BETWEEN @dteFrom AND @dteTo)
SELECT DISTINCT *
FROM dbo.vdata_Export_V3_3_2 v
INNER JOIN #tmp t ON v.[CASE] = t.[CASE]
MSアクセスコード:
Function Exec_pJDB_export(sqlConn as string)
Dim conn As ADODB.Connection
Dim cmd As ADODB.Command
Dim iFrom, iTo As Integer
Dim stv As String
iFrom = 1999
iTo = 2002
stv = "1 TO 2 TON TRUCKS (COMMERCIAL)"
Set conn = New ADODB.Connection
conn.Open "DSN=Cars"
conn.ConnectionString = sqlConn
Set cmd = New ADODB.Command
cmd.ActiveConnection = conn
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "pJDB_export"
cmd.Parameters.Append cmd.CreateParameter("@dteFrom", adInteger, adParamInput, , iFrom)
cmd.Parameters.Append cmd.CreateParameter("@dteTo", adInteger, adParamInput, , iTo)
cmd.Parameters.Append cmd.CreateParameter("@vehicle", adVarChar, adParamInput, 80, stv)
cmd.Execute
conn.Close
End Function
あなたは何の問題がありますか?コードがエラーメッセージを返すか、レコードにアクセスする方法がわからないのですか?後者の場合は、[ADOレコードセット](https://www.w3schools.com/asp/ado_ref_recordset.asp)が必要です。 –
何も返されず、エラーメッセージも表示されません。 ADO経由でレコードにアクセスする方法がわからない – Draco
ExecuteReader()をチェックアウト https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executereader(v=vs.110).aspx – pmbAustin