简短形式:在MS Access VBA(2010)中,我想知道在LostFocus事件期间哪个控件将获得焦点。
长篇: 在表单中,我有一个子表单,其中包含水果,数字和注释的列表。在表单中,我在列表视图中显示该子表单,用于以前已知的一组水果:
Fruit Count Comment
Apples
Apples
Apples
Oranges
Bananas
Bananas
用户输入每个水果的计数:
Fruit Count Comment
Apples 4
Apples 3
Apples 2
Oranges 5
Bananas 2
Bananas -1 ( = rotten)
现在我需要计算这样的平均值:
Fruit Count Comment
Apples 4
Apples 3
Apples 2
Apples 3 Average
Oranges 5
Bananas 2
Bananas -1
Bananas -1 Average
我已经有了一个可以做到这一点的Sub,但是在每次输入后运行它太慢了。它还使用户感到困惑,突然出现一些平均值出现在她的输入中。所以我想在用户完成输入计数后才运行它。
运行此平均值计算的IMO自然位置将是计数控件的LostFocus事件,但前提是焦点更改为其他计数控件以外的其他值。我怎么能这样做(screen.ActiveControl没有帮助,因为在LostFocus期间它还是旧的控件)?
答案 0 :(得分:0)
如果您创建一个变量来存储您所在的最后一个控件。
LostFocus
在计数字段的LastUsedControl = Me.ActiveControl.Name
事件中
OnEnter
使用您可以执行的其他字段的If LastUsedControl = "txtCount" then
Call FindAverageCount
End If
事件
public sub FindAverageCount()
然后创建一个方法,使用平均值OnEnter
计算和更新您的记录,然后仅在您编辑计数字段时调用var mysql = require('mysql');
var $ = require('jquery');
var connection = mysql.createConnection({
host : 'somehost.com',
user : 'admin',
password : 'admin',
database : 'food'
});
connection.connect(function(err) {
if (err) {
document.write('error connecting: ' + err.stack + '<br>');
return;
}
document.write('Conectat cu ID ' + connection.threadId + '<br>');
});
connection.query('SELECT * FROM recipes', function(err, rows, fields) {
if (err) throw err;
rows.forEach(function (item) {
$("body").append('<span style="color: blue; font-weight: bold;">Denumire:</span> ' + item.denumire + ' <span style="color: blue; font-weight: bold;">Ingrediente:</span> ' + item.ingrediente + '<br>');
})
});
connection.end();
事件。