根据表单combox更改数据表单元格

时间:2015-03-02 08:57:21

标签: ms-access combobox datasheet

我试图弄清楚如何在组合框使用查询时使用组合框创建一个使用主表的表单。我尝试做的是让组合框在更改后更新。他们有65个组合框,每个组合框都有自己的默认值(1-65)。主表有一个名为" Recall_Position"的列。并且查询来自此和"姓氏"和"名字"。当表单打开时,每个组合框都会自动填充" Recall_Position"的行的姓氏。等于组合框默认值。

示例1:" Recall_position"中包含第一个的行在#34;姓氏"下的同一行中有名称Smith,当打开表单时,组合框有" 1"设置,因为它已经在组合框中已经选择了Smith的情况下打开。这已经设置并且没有问题。

我想要得到的是一个不同的"姓氏"在组合框中选择它将清除"姓氏"并设置新的"姓氏"使用该组合框默认编号。

示例2:当组合框从史密斯改为伍兹时,使用Example1,它将在"姓氏"并转到" Recall_position"下的同一行然后清除史密斯的号码,然后找到伍兹并放置" Recall_position" as" 1"。

如果我必须通过改变每个组合框的VBA,它就不会打扰我。这背后的原因是我正在创建一个报告,该报告将根据" Recall_position"创建姓名和电话号码名单。

combo boxes

1 个答案:

答案 0 :(得分:0)

尝试使用它,例如2:

Dim dbs As New ADODB.Connection
Dim rst As New ADODB.Recordset

Set dbs = CurrentProject.Connection
  With rst
       Set .ActiveConnection = CurrentProject.Connection
       .Source = "TheTableYouHave"
       .CursorLocation = adUseClient
       .CursorType = adOpenKeyset
       .LockType = adLockOptimistic
       .Open
   End With
rst.MoveFirst

rst.Find "[Recall Position] "27"" ' Will go to line number that hold 27
OldLastName = rst!LastName ' Save the old last name
rst!LastName = NewLastName ' Replace lastname in line 27 with new last name

set dbs = Nothing
set rst = Nothing

等。等

您也可以用另一个号码替换rst![Recall Position]。这只是为了让你知道如何做到这一点。 当您使用rst.某事时,您告诉记录集要移动到哪里,搜索等等,当它是rst!时,您会进入记录集来读取单元格或替换单元格。它不像excel。你不能做一个细胞(2,5)。在这种情况下,它将是:

rst.move 5
rst![Column 2 Name] = NewValue

对应

cells(2,5) = NewValue 

在excel中(对不起,如果我混合了行和列)。我希望你明白。 尝试在VBA中使用Debug.Print rst!WhateverYouLike并了解代码。

最好的问候,埃米尔。