このストアドプロシージャはSQL Serverにあり、データテーブルとNewOwnerIDをパラメータとして受け取り、DatatableのIDと一致するすべての行を更新します。ユーザー定義型の配列をストアドプロシージャに渡す方法
CREATE Procedure [dbo].[udpUpdateActivityLead]
@ActivityLeadTable ActivityLeadType READONLY,
@OwnerTo int
AS
BEGIN
UPDATE [tblActivity]
set [tblActivity].[employeeID] = @OwnerTo
from @ActivityLeadTable
where [tblActivity].[activityID] in (Select ID from [@ActivityLeadTable])
END
私はこれを静かでシンプルなC#から使用しました。今は最悪の部分ですが、MS Accessフロントエンドからこのストアドプロシージャを呼び出す必要があります。私はこれをどのようにして行うのですか?
私はエラーを取得する クラスclsUpdateLeadsからUpdateRecordデータベース関数を呼び出す形で
Public Type MyIDs
ID As Long
End Type
を私はMSACCESSで以下試してみたが、エラー
は、モジュール内でユーザー定義型を作成します次のコードの4行目で
Dim IDList() As MyIDs
Dim objUL As clsUpdateLeads
Set objUL = New clsUpdateLeads
Call objUL.updateRecord(IDList, Me.updateEmployeeID)
updateRecord funcの定義クラスモジュールのclsUpdateLeads
Public Sub updateRecord(activityIDs() As MyIDs, NewOwnerID As Long)
If Not (isConnectionOpen()) Then
OpenConnection
End If
Set ADOCom = New ADODB.Command
ADOCom.ActiveConnection = ADOConn
ADOCom.CommandType = adCmdStoredProc
ADOCom.CommandText = "[dbo].[udpUpdateActivityLead]"
ADOCom.Parameters.Append ADOCom.CreateParameter("@ActivityLeadTable", adArray, adParamInput, 10, activityIDs())
ADOCom.Parameters.Append ADOCom.CreateParameter("@OwnerTo", adBigInt, adParamInput, 10, NewOwnerID)
ADOCom.Execute
End Sub
を使用すると、SQL ServerにMSACCESS前端から通信したい理由bac kend.insteadすべてのデータをmsaccess.Doにインポートしてください。まず、テーブルタイプのない非常に単純なprocを作成し、それが動作するかどうかを確認してください。 – KumarHarsh
@KumarHarshご回答いただきありがとうございますが、私はサーバーレベルで脳を必要とするほとんどのものを保持し、単なるデータホルダーとしてアクセスフロントエンドを使用しようとしています。もう一度ありがとうございます。 – Shallo