首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >访问-将值存储在ComboBox中以用作运行查询时的参数(运行查询按钮)

访问-将值存储在ComboBox中以用作运行查询时的参数(运行查询按钮)
EN

Stack Overflow用户
提问于 2014-04-18 05:54:31
回答 1查看 846关注 0票数 1

窗体有两个组合框(boxLaborCore,boxPosition)和一个按钮(runQuery)。按钮通过控件向导构建,一个运行查询按钮。运行具有名为LaborCore和Position的参数的查询。根据所选工作区/职位的类型,选择查询中会显示不同的技能。当我手动输入人工核心/职位时,查询运行得很好,我希望能够自动执行此操作。

我将查询中的条件从输入劳工核心切换为

代码语言:javascript
运行
复制
[Forms]![Form1]![boxLaborCore]

以及从回车位置到

代码语言:javascript
运行
复制
[Forms]![Form1]![boxPosition]

我读到过需要编辑BoundColumn属性才能存储值。

有人能给我指出解决这个问题的正确方向吗?VBA代码是否可以使用event After_Update来完成此任务?

你知道是什么导致了这个问题吗?我的梦想表单如下所示:(步骤1)在组合框的(步骤3)单击运行查询的按钮中选择劳动力核心/职位。生成一个表,其中包含指定参数的正确技能集。

这里是查询的SQL代码。涉及5个表,2个tbls用于laborcore和position,一个表用于所有可能的laborcore / position组合,名为workarea,以及一个包含所有技能的表:

代码语言:javascript
运行
复制
    SELECT tblWorkArea.ID_WorkArea, tblWorkArea.[Labor Core], tblWorkArea.Position, tblSkills.Wiring, tblSkills.[Wire Type], tblSkills.[Terminal Types], tblSkills.[NEMA Ratings], tblSkills.[UL 508], tblSkills.[Attention to Detail], tblSkills.[Lifting 50lbs], tblSkills.[Knowledge of Procedure], tblSkills.Crimper, tblSkills.[Heat Gun], tblSkills.Screwdriver, tblSkills.Stripper, tblSkills.[Impact Drill], tblSkills.[Radial Saw], tblSkills.Multimeter, tblSkills.[Torque Screwdriver/Wrench], tblSkills.[Tape Measure], tblSkills.Vacuum, tblSkills.[Drill Press], tblSkills.[Jig Saw], tblSkills.[Troubleshooting Components], tblSkills.[Problem Solving], tblSkills.Organization, tblSkills.[Large Panel], tblSkills.[Test Procedures], tblSkills.[Functional Testing], tblSkills.[Writing Test Procedures], tblSkills.[Material Management], tblSkills.[Set Meter Ability], tblSkills.[Tone Generator], tblSkills.[Megger Testing], tblSkills.[Network Tracer], tblSkills.Components, tblSkills.Fuses, tblSkills.[Heat Shrink Color Codes], tblSkills.[Proper Lug or Crimping], tblSkills.[Resistors Knowledge], tblSkills.Oscilloscopes, tblSkills.Waveforms, tblSkills.[Voltage Separation], tblSkills.[Skill x_Stapling]

    FROM ((tblLaborCore INNER JOIN tblWorkArea ON tblLaborCore.[Labor Core] = tblWorkArea.[Labor Core]) INNER JOIN tblPosition ON tblWorkArea.Position = tblPosition.Postion) INNER JOIN tblSkills ON tblWorkArea.ID_WorkArea = tblSkills.ID_WorkArea

/*
* 提示:该行代码过长,系统自动注释不进行高亮。一键复制会移除系统注释 
* WHERE (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.[Reading Schematics])<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.Wiring)<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.[Wire Type])<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.[Terminal Types])<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.[NEMA Ratings])<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.[UL 508])<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.[Attention to Detail])<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.[Lifting 50lbs])<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.[Knowledge of Procedure])<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.Crimper)<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.[Heat Gun])<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.Screwdriver)<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.Stripper)<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.[Impact Drill])<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.[Radial Saw])<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.Multimeter)<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.[Torque Screwdriver/Wrench])<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.[Tape Measure])<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.Vacuum)<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.[Drill Press])<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.[Jig Saw])<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.[Troubleshooting Components])<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.[Problem Solving])<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.Organization)<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.[Large Panel])<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.[Test Procedures])<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.[Functional Testing])<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.[Writing Test Procedures])<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.[Material Management])<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.[Set Meter Ability])<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.[Tone Generator])<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.[Megger Testing])<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.[Network Tracer])<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.Components)<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.Fuses)<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.[Heat Shrink Color Codes])<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.[Proper Lug or Crimping])<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.[Resistors Knowledge])<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.Oscilloscopes)<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.Waveforms)<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblSkills.[Voltage Separation])<>0)) OR (((tblWorkArea.[Labor Core])=[Forms]![SkillsMatrix]![boxLaborCore]) AND ((tblWorkArea.Position)=[Forms]![SkillsMatrix]![boxPosition]) AND ((tblSkills.[Skill x_Stapling])<>0));
*/

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2014-06-02 10:17:36

我使用的技巧是在字符串中构建查询,将字符串打印到即时窗口,并在视觉上验证它是您想要的。然后创建一个新查询,并将该字符串用作SQL。当您尝试切换到“设计视图”时,Access会告诉您是否存在语法错误。如果没有语法错误,请尝试运行查询并查看是否在数据集中获得所需内容。

在您创建的字符串中,不要将表单引用放在引号中。强制VBA在将这些字段值添加到字符串之前解析它们。执行此操作时,您提供给查询生成器的SQL中将没有表单引用。

如果任何表单引用解析为字符串,请确保在构建PS>语句时引用这些字符串。这与我上面写的并不冲突:您实际上是在将引号编码到SQL字符串中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23144124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档