Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 如何通过SQL在Access数据库的查找字段中插入多个值?_Ms Access_Vbscript_Asp Classic_Lookup - Fatal编程技术网

Ms access 如何通过SQL在Access数据库的查找字段中插入多个值?

Ms access 如何通过SQL在Access数据库的查找字段中插入多个值?,ms-access,vbscript,asp-classic,lookup,Ms Access,Vbscript,Asp Classic,Lookup,如何使用ASP在Access数据库的查找字段中插入多个值 (我尝试了几种方法,因此我甚至不确定要显示哪种代码作为尝试。)对于名为[Agents]的示例表,其多值查找字段名为[Languages] 下面的VBScript代码表示添加名为“Maria”的新代理的一种方法,该代理同时会说英语和西班牙语 选项显式 尺寸con、cmd、rst、newID 常数adInteger=3 常量adVarWChar=202 常量adParamInput=1 常数adOpenStatic=3 常数adlock=3

如何使用ASP在Access数据库的查找字段中插入多个值


(我尝试了几种方法,因此我甚至不确定要显示哪种代码作为尝试。)

对于名为[Agents]的示例表,其多值查找字段名为[Languages]

下面的VBScript代码表示添加名为“Maria”的新代理的一种方法,该代理同时会说英语和西班牙语

选项显式
尺寸con、cmd、rst、newID
常数adInteger=3
常量adVarWChar=202
常量adParamInput=1
常数adOpenStatic=3
常数adlock=3
Set con=CreateObject(“ADODB.Connection”)
未结_
“Provider=Microsoft.ACE.OLEDB.12.0;”_
“数据源=C:\Users\Public\Database1.accdb”
'插入除*多值查找字段以外的所有字段*
Set cmd=CreateObject(“ADODB.Command”)
cmd.ActiveConnection=con
cmd.CommandText=“插入代理(AgentName)值(?)
cmd.Parameters.Append cmd.CreateParameter(“?”,adVarWChar,adParamInput,255,“Maria”)
cmd.Execute
Set cmd=Nothing
'获取新插入记录的自动编号ID
Set rst=CreateObject(“ADODB.Recordset”)
rst.打开“选择@@IDENTITY”、con、adOpenStatic、ADLOCKOPTIMATION
newID=rst(0)。值
rst.关闭
设置rst=无
'插入多值查找字段值
Set cmd=CreateObject(“ADODB.Command”)
cmd.ActiveConnection=con
cmd.CommandText=“插入代理(Languages.Value)值(?),其中AgentID=?”
cmd.Parameters.Append cmd.CreateParameter(“?”,adVarWChar,adParamInput,255)
cmd.Parameters.Append cmd.CreateParameter(“?”,adInteger,adParamInput)
cmd.Prepared=True
cmd.Parameters(1).Value=newID
“第一价值
cmd.Parameters(0).Value=“英语”
cmd.Execute
“第二个值
cmd.Parameters(0.Value=“西班牙语”
cmd.Execute
Set cmd=Nothing
结案
设置con=Nothing
虽然这可以回答问题的直接要求,但需要注意的是:

  • Access SQL对操作查找字段的支持不完整,在不同的开发环境中可能不一致

  • “Microsoft强烈建议不要在web应用程序中使用Access”(参考:),以及

  • 经验丰富的Access开发人员建议不要使用查找字段(参考:),除非是在非常特殊的情况下(例如与SharePoint集成)


  • 两件事:1)你知道如何用ASP与数据库交互吗?关于这些技术的入门教程可能是一个很好的开始。2) “在字段中插入多个值”听起来像是一个设计问题。您几乎不希望在一个字段中放置多个值。关系数据库用于将数据分离到关系模型中。插入或选择。插入功能的目的是:系统上有多个代理。代理在添加承包商时必须进行搜索,以查看承包商是否存在,如果合同存在,代理可以选择将承包商链接到其“配置文件”查找字段是代理,该响应听起来像是从家庭作业中复制/粘贴的。它也没有解决我先前评论中提出的任何一点。如果您试图学习如何在ASP中与数据库交互,那么我再次建议您查找并遵循有关该主题的介绍性教程。如果你尝试了一些东西,但却没有以某种意想不到的方式发挥作用,我们可以帮助你回答一些具体的问题。但我们这里不提供端到端的教程。另外,作为一条一般性建议,在一个字段中存储多个值是错误的设计。@David在回答之前的问题时提到了这一点。它们指的是Microsoft Access中的查找字段,我使用属性UI和/或查找向导构建了该字段。听起来他们在处理关系数据方面没有太多经验,也不了解查找字段的值从何处获得。对于参数化查询方法,+1。您可以同时执行
    INSERT
    SELECT@@identity
    来保存对数据库的调用,但不确定Access是否支持这些调用。@感谢您的反馈。实际上,为了访问,INSERT和SELECT@标识查询必须单独执行。我必须承认我不确定。当人们仍然使用Access作为web应用程序的数据库后端时,即使是Microsoft也不推荐它,这让人感到困惑。