【问题标题】:Access VBA code for copying information from a combobox and pasting into a textbox on a continuous form访问 VBA 代码以从组合框中复制信息并粘贴到连续表单上的文本框中
【发布时间】:2016-04-13 21:30:04
【问题描述】:

真的需要帮助,我有一个带有组合框的连续表单来选择数据,每一行都有不同的标准,您只能在组合框下拉列表中选择每行的某些项目。 (例如,我有四排,一排是盖子,一排是瓶子,一排是标签,最后一排是瓶中的油。)

我需要的是,当我在组合框下拉列表中选择某些内容时,我希望它粘贴到文本框中并留在那里,直到在同一行上做出另一个选择......目前我可以制作信息出现在文本框中,但是当我移动到另一行并选择另一个项目时,它会覆盖我已经选择的任何内容。

举个例子,我选择了产品 1,它有盖子 1、瓶子 1、标签 1 和油 1。在下拉组合框中,我只能选择瓶子来替换瓶盖来替换盖子等等。我想在瓶子行的组合框中选择瓶子 2(这会更改所有组合框)我现在只想将该选择保存在瓶子行的文本框中,然后当我在标签行上选择标签 2 时尽管它更改了所有组合框,但我不希望它覆盖瓶子行的文本框。 (我假设一个标准只会改变你点击的组合框的行或类似的东西)

希望这对每个人都有意义(P.S. 我不知道如何在此处截取屏幕截图,因此已尽我所能解释)

非常感谢

贾斯汀

【问题讨论】:

  • 那么您想要做的是将来自组合框选择的更新附加到文本框吗?更改组合框后,您会看到其他组合框发生变化,即使您不期望它们也会发生变化?只是为了验证:您的每个组合框都是从数据库中的不同表中填充的吗?
  • 嗨@Nick 感谢您的回复。是的,目前组合框在每次选择时都会发生变化,所以我将文本框用于捕获行数据,因此当您更改瓶子时,它不会影响标签行,而当您选择盖子时,它不会影响瓶子行.我试图将其构建为一种解决方法,因为当我不想要它们时组合框正在改变。所有数据最初都来自一个表,组合框都来自另一个表。它们由标准定义,以确定瓶子是否是瓶子等。
  • 您的四个字段都在同一个表中吗?例如,您是否有 tblProductProperties,其中有四个字段,分别称为 Label、Cap、Bottle 和 Oil?
  • 是的,它们都在同一个表中并由一个唯一字段定义,我已将组合框中的行源作为一个查询,在该查询中我与基础数据匹配(即我有基础数据表中,有一个字段(瓶子,瓶盖,标签,油),并将组合框的行源中的这个匹配到我选择的列表数据,其中有一个字段(瓶子,瓶盖,标签,油)所以可能有 10 个瓶子/瓶盖/标签/油,您可以使用组合框来选择它们。(以阻止用户用瓶子替换瓶盖)
  • 好的,简短的回答是您需要将它们分成不同的表。我会写一个更详细的答案。

标签: vba ms-access combobox


【解决方案1】:

您必须将文本框绑定到记录中的字段。

只要文本框未绑定,它就不会知道记录,并且会为所有记录显示相同的内容。

【讨论】:

  • 嗨@Gustav,感谢您的快速回复。你会怎么做呢?你的意思是绑定组合框还是将文本框绑定到组合框?对此仍然相对较新
  • 将其 ControlSource 设置为表的(新)字段。
【解决方案2】:

我假设您希望能够将某些产品映射到 4 种不同类型的瓶盖、瓶子、标签和油:

您的问题似乎出在您的数据表设计上,而不是在您的组合框中。您根本不需要文本字段。问题是您的组合框都基于同一张表。当您从其中一个中选择 Bottle2 时,它会将其余组合框与该行匹配。所以其他所有的都会得到Label2、Cap2等,因为它们在表格的同一行。

制作一个名为 tblProducts 的产品表。字段 ID(自动编号)、product_name、label_FK、cap_FK、Bottle_FK 和 oil_FK 应该在其中。那些 FK 代表外键,应该是数字类型。产品名称可以是文本。

使用 ID 和描述创建 tblLabel、tblCap 等。

在您的关系中,您需要将 tblLable.ID 映射到 tblProducts.Label_FK 字段。对所有 4 种类型执行此操作。然后您可以根据产品表重新创建表单。无论表单为您提供控制 label_FK、cap_FK 等字段的方式,您都可以通过右键单击将其转换为组合框 -> 更改为...

最后,您可能需要更新组合框的列数才能看到描述。

编辑:更持久的信息 - 对数据表设计进行一些扎实的研究将在设计时间上带来巨大的收益。从 Microsoft 的 Database Design Basics 页面开始,这将有助于作为一个体面的 30 分钟介绍,并且应该有助于为您解决一些问题。

【讨论】:

  • 谢谢尼克,会试试的
猜你喜欢
  • 2013-04-25
  • 2010-11-20
  • 1970-01-01
  • 2021-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多