Loops accessvba中的循环
我对访问VBA有点陌生,我的循环有问题 我查阅了各种书籍、网站,询问了各种朋友。目前我正在尝试让用户输入两个字符,然后如果这两个字符等于某个组合,那么它应该等于一个数值,然后在距离计算中使用该值 用户输入的值是字符串,其他所有值都声明为double 我测试了200多个组合,并尝试了Loops accessvba中的循环,loops,ms-access,vba,Loops,Ms Access,Vba,我对访问VBA有点陌生,我的循环有问题 我查阅了各种书籍、网站,询问了各种朋友。目前我正在尝试让用户输入两个字符,然后如果这两个字符等于某个组合,那么它应该等于一个数值,然后在距离计算中使用该值 用户输入的值是字符串,其他所有值都声明为double 我测试了200多个组合,并尝试了case语句、DLookup、do while、do till、if和elseif循环,但都没有成功 我也受到它的限制,无法使用DAO代码 非常感谢您的帮助。我首先建议创建一个表格,正式定义各种字符组合以及每个组合的相
case
语句、DLookup
、do while
、do till
、if
和elseif
循环,但都没有成功
我也受到它的限制,无法使用DAO代码
非常感谢您的帮助。我首先建议创建一个表格,正式定义各种字符组合以及每个组合的相应值。这样做的优点是,可以很容易地继续维护这些组合,而不是将这些组合定义为查询的一部分或在VBA代码中 这样的表可以简单到包含三个字段:
- 字符1(文本)
- 字符2(文本)
- 数值(数字)
char1
和char2
,第三个文本框可能被称为result
,并且具有控制源属性,该属性等于:
=DLookup("Value", "LookupTable", "char1 = '" & [char1] & "' and char2 = '" & [char2] & "'")
这将产生以下行为:
考虑使用Access作为数据库和GUI应用程序,将200多个组合存储在一个带有相应数值的表中。然后按用户输入进行SQL查询筛选,并将结果值用于所需的计算。下面需要创建和使用四个:表、查询、表单和模块 表格(待定组合) SQL(无需循环;使用访问表单控制值)
选择c.combn1、c.combn2、c.numeric\u值
来自TBLCombic
其中c.combn1=形式!我的表格!myUserInputField1
c.combn2=形式!我的表格!myUserInputField2
甚至在距离计算公式中传递所需的数值,该公式可以是标准模块中的VBA函数:
选择c.combn1、c.combn2、距离计算(c.数值)作为距离结果
来自TBLCombic
其中c.combn1=形式!我的表格!myUserInputField1
c.combn2=形式!我的表格!myUserInputField2
VBA(放在标准模块中)
公共功能距离计算(num\u值等于长)为双精度
...
距离计算=某个值
端函数
您可以在结果表单按钮或两个文本框上的事件后使用以下类型函数-
Dim resultValue为整数
如果DCount(“数值”、“tblCombinations”、“[combn1]=”&Forms!myForm!myUserInputField1&”和[combn2]=”&Forms!myForm!myUserInputField2&“”)大于0,则
否则
Msgbox“不存在此类组合。请检查组合”,vbinformation,“Information”
如果并且您也未使用任何DAO记录集,则结束!(我认为这是一次试图束缚你的双手,并使用dlookup()代替DAO的reocrdset对你来说是最棒的!你好,李。谢谢你所做的一切!不过我有一个小问题。我输入了所有内容,就像你说的Yoda一样,但由于某种原因它不起作用。我得到了一个错误的名称?你对如何修复它有什么建议吗?再次感谢你的帮助。我真的很感激你晚点。@Divingmickey不客气。我假设
#Name
出现在结果文本框中?如果是,其他两个文本框名为char1
和char2
?是的,#Name?错误出现在文本框中。我有char1=StartNode和char2=EndNode,两者都是字符串。时间是我其余精彩数字的两倍我的表名为NODES。我做错了什么Yoda?您的字段名是StartNode
&EndNode
还是您的文本框?还是两者都有?您是否适当地更改了DLookup
表达式的所有元素,包括值
字段名?感谢您的所有帮助。这让我感到非常激动我的头发变白了。不幸的是,我仍然无法得到数字结果。我想这个周末我会染上头发
id combn1 combn2 numeric_value
1 A B 150
2 C D 225
3 E F 100
4 G H 75
5 I J 200
...
resultValue = Dlookup("numeric_value", "tblCombinations", "[combn1] = '" & Forms!myForm!myUserInputField1 & "' and [combn2] = '" & Forms!myForm!myUserInputField2 & "'")
txtResult = Distance_Calculation(resultValue)
txtResult = 0