Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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
使用VBA将具有所有特性的组件(组合框)复制到其他组件中_Vba_Ms Access_Combobox_Ms Access 2010 - Fatal编程技术网

使用VBA将具有所有特性的组件(组合框)复制到其他组件中

使用VBA将具有所有特性的组件(组合框)复制到其他组件中,vba,ms-access,combobox,ms-access-2010,Vba,Ms Access,Combobox,Ms Access 2010,我想知道如何将所有属性从一个组件复制到同一类型的另一个组件。我可以更好地解释: 我在Access 2010中有一个UI,我在表单_Load()中设置了表单所有组合框的属性,如下所示: For Each cCont In Me.Controls If TypeName(cCont) = "ComboBox" Then cCont.RowSourceType = "Value List" End If Next cCont 然后我在不同的组合框中添

我想知道如何将所有属性从一个组件复制到同一类型的另一个组件。我可以更好地解释:

我在Access 2010中有一个UI,我在表单_Load()中设置了表单所有组合框的属性,如下所示:

For Each cCont In Me.Controls
       If TypeName(cCont) = "ComboBox" Then
           cCont.RowSourceType = "Value List"
       End If
Next cCont
然后我在不同的组合框中添加他们的信息:

 cbUiUnit.AddItem "°C"
 cbUiUnit.AddItem "°F"

 cbTxUnit.AddItem "°C"
 cbTxUnit.AddItem "°F"

 cbUiUnit.DefaultValue = "cbUiUnit.ItemData(0)"
 cbTxUnit.DefaultValue = "cbTxUnit.ItemData(0)"
我想这样做更自动,因为每一个单位的变化,我需要做两次。我可以像以前一样为我的每个cCont.Controls做另一个
,但问题是我的组合框不止这两个;都有不同的价值观

在设置了
cbUiUnit
的所有数据后,我尝试执行
cbTxUnit=cbUiUnit
,但它只将
cbUiUnit.Value
复制到
cbTxUnit
中。因此,所有添加的项目都不存在于
cbTxUnit


谢谢

您应该制作一个函数来为您完成这项工作

Private Function PopulateCombobox(inCbo as ComboBox) 
   inCbo.AddItem "°C"
   inCbo.AddItem "°F"
   inCbo.DefaultValue = inCbo.name & ".ItemData(0)"
End Function
那么你可以这样称呼它

PopulateCombobox cbUiUnit
PopulateCombobox cbTxUnit

然后,您需要进行的任何更改都可以普遍应用,并且acer位于中心位置。

某些属性是“只读”的,因此您不能复制“全部”。有多少个组合框需要更改?如果我能将DefaultValue和添加的项目从一个组合框复制到另一个组合框,我已经很高兴了。它只有两个组合框
cbUiUnit
cbTxUnit
,但主要问题是我需要经常更改这些单位,这取决于对另一个组合框的选择(重量、速度、温度、距离…),谢谢!工作起来很有魅力@EricPb不客气,我看到了你的编辑,对它做了一些修改。