希望这个问题不太困难,但我无法弄清楚,也无法在论坛中找到任何内容。
我想将切换框的输出从1,2,3,4,5转换为每个按钮显示的文本。
在切换框属性本身上找不到任何设置,因此决定我必须编写一个宏/ vba才能从表中进行设置,但是由于它对我来说是很新的,所以我在语法上苦苦挣扎。
我主要尝试在内置数据宏上执行此操作,但也通过查询和vba进行了尝试,但仍然无法弄清楚。
[尚无任何声誉,因此尚未被允许张贴我的宏的照片]
请帮忙!使用vba,数据宏或查询的任何解决方案都很棒
编辑
具体来说,不是消息框,我想根据选项组选择来更新“主要设备”表中的field1,这是我的最新尝试,但仍不确定如何引用选项组。我需要将grp设置为等于选项组吗?它像forms!myform!optiongroup之类的东西吗?
Option Compare Database
Function MyFunc(grp As OptionGroup)
Dim rcrdset As Recordset
set grp =
Set rcrdset = Application.CurrentDb.OpenRecordset("Major Equipment", dbOpenDynaset)
Select Case grp.Value
Case 1
With rcrdset
.AddNew
![Field1] = "Not Reviewed"
Case 2
.AddNew
![Field1] = "Reviewed"
Case Else
MsgBox "Error"
End Select
End Function
还刚刚意识到,因为这些切换按钮将由用户更新,所以我可能需要更新而不是addnew?
您的按钮是选项组的一部分。那是您必须参考的。以下是我的网上搜索摘录。
从AfterUpdate()
您的选择组事件中:
Call MyFunc(Me.MyGroup)
...将用于Select Case
评估:
Function MyFunc(grp As OptionGroup)
Select case grp.Value
Case 1
MsgBox "Option value is 1."
Case 2
MsgBox "Option value is 2."
Case Else
MsgBox "Huh?"
End Select
End Function
如果您是VBA的新手,可以在这里学习六件事,但是它们会为您提供很好的服务。与宏相比,VBA的外观看起来不太友好,但是我可以告诉您更多的冒险,建议您跳过宏。对于大多数需求,VBA将为您提供更好的服务;当您需要建议时,进行故障排除或提供详细信息要容易得多。
要将其转换为有用的函数,您将填充字符串变量,而不是引发消息框。然后,您可以使用字符串变量执行类似运行更新查询的操作。您的最新编辑建议您进行以下操作:
strSQL = "UPDATE [Major Equipment] " _
& "SET Field1='" & strUserSelection & "' " _
& "WHERE MyID=" & lngThisRecord
DoCmd.RunSQL strSQL
您的最后编辑建议使用DAO记录集。我认为你可能会谦虚的很好DoCmd
。少学习。您可以通过良好的Access敲定查询的原型;然后切换到SQL View并将查询粘贴到您的VBA模块中。如上所述插入变量,注意带引号。如果它不起作用,请使用Debug.Print
来获取其价值strSQL
并将其带回给ol'Access,在这里您可以将其塑造成形状。利用您的发现来改进VBA。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句