【发布时间】:2022-06-17 12:20:57
【问题描述】:
我想整合我的 VBA,以便更容易管理和查看,而不是多次复制它。
然后我想在 sub 内写一个 if 语句,根据我单击的按钮打开记录集
有4个按钮
cmdAllSupplierscmdActivecmdInactivecmdArrangments
每个按钮都有调用子 EmailQuery 和错误处理的 VBA。子代码如下。
Sub EmailQuery()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim strEmail As String
Dim strQryAll As String
Dim strQryActive As String
Dim strQryInactive As String
Dim strQryArrangement As String
Set cn = CurrentProject.Connection
Set rs = New ADODB.Recordset
strQryAll = "qryAllSuppliers"
strQryActive = "qryActiveSuppliers"
strQryInactive = "qryInactiveSuppliers"
strQryArrangement = "qryAgreementEmail"
rs.Open strQryAll, cn
rs.Open strQryActive, cn
rs.Open strQryInactive, cn
rs.Open strQryArrangement, cn
With rs
Do While Not .EOF
strEmail = strEmail & .Fields("Email") & ";"
.MoveNext
Loop
.Close
End With
strEmail = Left(strEmail, Len(strEmail) - 1)
DoCmd.SendObject , , , , , strEmail, , , True, False
End Sub
rs.open 显然无法按目前的方式工作,但我希望 if 语句根据我按下的按钮打开这四个中的一个。
【问题讨论】:
-
您似乎掌握了 VBA .... 您只需将参数/参数传递给您的例程。即( sub FunctionName(SelectedInteger As Integer) ,然后将其与您的“if”语句一起使用以运行您想要的查询。
-
我不会说我掌握得很好。更多的是非常擅长谷歌搜索,然后稍微调整以适应我的数据和名称等。这就是为什么我不知道该怎么做。
-
有很多方法可以用这个任务给猫剥皮。您可以将按钮/下拉菜单添加到功能区、表单或工作表。我认为一种方法很简单,在开发人员选项卡中,查找“插入”,选择一个按钮,单击鼠标右键,分配一个宏。编写四个使用您要使用的参数调用上述宏的宏。不漂亮,但它会工作......
-
我没有时间详细回答这个问题,它会重写轮子......如果你谷歌'调用宏以在 excel 中下拉',你会得到你的明确说明想做。