2012-07-11 3 views
2

다음 코드는 하드 값이 코딩 된 저장 프로 시저를 반환합니다. 콤보 상자에서 선택된 항목으로 74를 변경해야합니다. 어떤 도움이라도 대단히 감사합니다. Access에서 통과 쿼리를 사용하고 있습니다.매개 변수를 사용하여 저장 프로 시저

Private Sub ok_Click() 
    Dim objConnection As New ADODB.Connection  
    Dim objCom As ADODB.Command 
    Dim provStr As String 

    Set objCom = New ADODB.Command 

    objConnection.Provider = "sqloledb" 

    provStr = "Data Source=**;" & "Initial Catalog=IKB_QA;User Id=**;Password=**;" 

    objConnection.Open provStr 

    With objCom 
     .ActiveConnection = objConnection 
     .CommandText = "dbo.ix_spc_planogram_match 74" 
     .CommandType = adCmdStoredProc 

     .Execute 
    End With 

End Sub 

답변

2

다음 코드는 폼의 매개 변수를 가져 와서 저장 프로 시저를 실행합니다.

Dim Cmd1 As ADODB.Command 
Dim lngRecordsAffected As Long 
Dim rs1 As ADODB.Recordset 
Dim intRecordCount As Integer 
'----- 
Dim cnnTemp As ADODB.Connection 
Set cnnTemp = New ADODB.Connection 
cnnTemp.ConnectionString = "DRIVER=SQL Server;SERVER=***;" & _ 
"Trusted_Connection=No;UID=***;PWD=***;" & _ 
"Initial Catalog=IKB_QA;" 
cnnTemp.ConnectionTimeout = 400 
'Open Connection 
cnnTemp.Open 
Set Cmd1 = New ADODB.Command 
Cmd1.ActiveConnection = cnnTemp 

'--- 

With Cmd1 
Dim localv As Integer 
Dim inputv 

localv = [Forms]![start]![Selection]![cat_code] 
.CommandText = "dbo.ix_spc_planogram_match " & inputv 
.CommandType = adCmdStoredProc 
Set inputv = Cmd1.CreateParameter("@catcode", 3, 1, 10000, localv) 
Cmd1.Parameters.Append inputv 
Set rs1 = Nothing 
Set rs1 = Cmd1.Execute 

localv = 0 
Do While Not rs1.EOF 

Debug.Print rs1.Fields.Item("POG_DBKEY").Value = "POG_DBKEY" 
Debug.Print rs1.Fields.Item("COMP_POG_DBKEY").Value = "COMP_POG_DBKEY" 
Debug.Print rs1.Fields.Item("CURR_SKU_CNT").Value = "CURR_SKU_CNT" 
Debug.Print rs1.Fields.Item("COMP_SKU_CNT").Value = "COMP_SKU_CNT" 
Debug.Print rs1.Fields.Item("SKU_TOTAL").Value = "SKU_TOTAL" 
Debug.Print rs1.Fields.Item("MATCHD").Value = "MATCHD" 
localv = localv + 1 

rs1.MoveNext 
Loop 
localv = localv 

rs1.Close 
Set rs1 = Nothing 
Set rs1 = Nothing 

End With 
End Sub 
0

당신이 연결 시도 할 수 있습니다 :

.CommandText = "dbo.ix_spc_planogram_match 74" 

과 : 당신의 문 교체

를 콤보 상자 이름 가정

.CommandText = "dbo.ix_spc_planogram_match " & yourComboBox.Text 

는 yourComboBox

+2

.text가 아닌 .text 속성은 컨트롤에 포커스가있을 때만 사용할 수 있습니다. 바인딩 된 열에 필수 값이 포함되어있는 한 기본 속성은 .value이므로 'yourComboBox'만 말할 수 있습니다. 꼭 필요한 경우 .value 속성을 명시 적으로 사용할 수 있지만 그렇게 할 필요는 없습니다. – Fionnuala

1

당신은 할 수있다 사용하다 더 가까운 접근을위한 명령 개체의 매개 변수 필드 :

관련 문제