Sql server MS Access VBA存储过程将值返回到文本框

Sql server MS Access VBA存储过程将值返回到文本框,sql-server,vba,ms-access,stored-procedures,Sql Server,Vba,Ms Access,Stored Procedures,我有这样一个时刻,忘记了如何将值从SQL SP返回到文本框 我使用下面的代码从MS Access 2013调用SQL SP,这会将值返回到列表框没有问题-我使用什么属性将SP值返回到文本框 工作代码: With CurrentDb.QueryDefs("qMasterPass") .SQL = "exec SKULookup " & txtSKUSearch Set Me.List38.Recordset = .OpenRecordset End With 非工作代

我有这样一个时刻,忘记了如何将值从SQL SP返回到文本框

我使用下面的代码从MS Access 2013调用SQL SP,这会将值返回到列表框没有问题-我使用什么属性将SP值返回到文本框

工作代码:

With CurrentDb.QueryDefs("qMasterPass")
     .SQL = "exec SKULookup " & txtSKUSearch
     Set Me.List38.Recordset = .OpenRecordset
End With
非工作代码-应该是什么?它们是:

With CurrentDb.QueryDefs("qMasterPass")
     .SQL = "exec SKULookup " & txtSearch
     Set Me.Text7.?????? = .OpenRecordset
End With

谢谢

假设您的记录集有一条记录,其中有一列,您可以这样做:

With CurrentDb.QueryDefs("qMasterPass")
     .SQL = "exec SKULookup " & txtSearch
     Me.Text7.Text = .OpenRecordset.Fields(0).Value
End With
最终工作代码:

With CurrentDb.QueryDefs("qMasterPass")
     .SQL = "exec SKULookup " & txtSearch
     Me.Text7.Value = .OpenRecordset.Fields(0).Value
End With

您是否试图从ms access调用SQL Server中的存储过程?是的,这是正确的。您确实应该在此处使用参数化查询,而不是构建字符串并执行它。这对sql注入是完全开放的。我正在从Access FE执行上述操作。参数是通过txtSearch传递的-这如何使其保持打开状态?我可以在txtSearch中输入类似“test或1=1”的内容吗?如果是,结果会是什么?这是典型的sql注入