2012-07-16 2 views
0

다음 코드는 저장 프로 시저 통과 쿼리를 실행합니다. 매개 변수는 양식에서 수신되어 저장 프로 시저로 전달됩니다. 오류는 유효하지 않은 SQL 문임을 나타냅니다. 코드가 맞는지, 데이터베이스에 연결하는 방법을 알아야합니다. 결과는 레코드 세트에 반환됩니다. 감사!매개 변수 쿼리 정의 전달

Private Sub Command10_Click() 
Dim rs1 As DAO.Recordset 
Dim DB As Database 
Dim Q As QueryDef 
Dim strSQL As String 

Set DB = CurrentDb() 
Set Q = DB.QueryDefs("Call_SP") 

strSQL = "execute dbo.ix_spc_planogram_match " & [Forms]![start]![Selection]![cat_code] 
Q.ReturnsRecords = True 

Q.SQL = strSQL 

Set rs1 = DB.OpenRecordset(strSQL) 

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" 

rs1.MoveNext 
Loop 
rs1.Close 
Set rs1 = Nothing 
Set rs1 = Nothing 
End Sub 

답변

0

CurrentDB는 MS Access이지만 SQL Server 저장 프로 시저를 실행하고 있습니다. 서버에 연결하여 실행해야합니다. 예를 들어

:

Dim objcon As New ADODB.Connection 

scn = "Provider=sqloledb;Data Source=ServerName;" _ 
    & "Initial Catalog=DBNAME;User Id=USERNAME;Password=Password;" 

objcon.Open scn 

Set rs = objcon.Execute