2013-03-11 80 views
0

在Access 2010中,我有两个表'联系人'和'PhoneCalls'。访问/ DCount给出一个TExt字段,而不是INT字段?

我创建了这个查询'联系',因为我想看看我打了多少次联系。

查询:

SELECT Contact.*, DCount("[ID]","ColdCall"," [ColdCall]![ContactID] = " & [Contact.ID]) AS Call 
FROM Contact 

我用下面的表达式构建这个查询:

Call: DCount("[ID]","ColdCall"," [ColdCall]![ContactID] = " & [Contact.ID]) 

它工作正常,除了它创建一个文本字段,而不是数字字段。例如,我需要对这个查询进行排序,但我只能将它排序为“A到Z”,而不是“最小到最大”。

你对我如何解决这个问题有任何想法吗?

回答

2

你可以使用CINT()来强制调用次数是一个整数:

SELECT Contact.*, CInt(DCount("[ID]","ColdCall"," [ColdCall]![ContactID] = " & [Contact.ID])) AS Call 
FROM Contact; 

另请注意,以这种方式使用DCOUNT()是相当低效。如果这种方法能够满足您的需求,那么现在就继续使用它,但是如果随着桌子的增长而开始停滞不前,请不要感到惊讶。

+0

嗨戈德,这解决了我的问题,非常感谢。 当你说“相当低效”时,你的意思是我应该以另一种方式使用CInt()吗?你能给我一个例子,我宁愿按照最标准的方式:-)非常感谢你的帮助! – 123pierre 2013-03-12 01:51:28