2012-07-16 137 views
0

以下代碼執行存儲過程傳遞查詢。參數從表單收到並傳遞給存儲過程。錯誤表示它是無效的SQL語句。我需要知道代碼是否正確以及如何連接到數據庫。結果以記錄集的形式返回。謝謝!傳遞參數查詢Def

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