테이블 tbl_ 수익에서 최소 수익을 찾아야했습니다. 내가 할 두 가지 방법을 발견 :"Min in Select 문"또는 DMin(). 어느 것이 더 낫습니까?
방법 1
Dim MinRevenueSQL As String
Dim rsMinRev As DAO.Recordset
MinRevenueSQL = "SELECT Min(tbl_Revenue.Revenue_Value)As MinRevenue FROM tbl_Revenue WHERE (((tbl_Revenue.Division_ID)=20) AND ((tbl_Revenue.Period_Type)='Annual'));"
Set rsMinRev = CurrentDb.OpenRecordset(MinRevenueSQL)
MinRev = rsMinRev!MinRevenue
방법 2
MinRev2 = DMin("Revenue_Value", "tbl_Revenue", "(((tbl_Revenue.Division_ID)=20) AND ((tbl_Revenue.Period_Type)='Annual'))")
나는 다음과 같은 질문이 있습니다
그들 중 하나가 계산 더 효율적입니다- ? tbl_Revenue 테이블 대신 조인을 사용하는 select 문장이 있다면 계산 효율면에서 많은 차이가 있습니까?
- DMin 기금의 정확성에 문제가 있습니까? (정확도 내 말은 내가 DMIN를 사용하기 전에 알아야 할 거기에 어떤 허점이 있습니다.) 특정 코드에서
그냥 궁금 해서요 - Set db = CurrentDb를 사용하든 아니면 CurrentDb 개체를 모든 곳에서 사용하든 상관 없습니다 (CodeDB 또는 다른 것으로 변경할 유연성이 필요하지 않은 경우). OP가 CurrentDB를 사용 중입니다. 또한 내부적으로 CurrentDB 객체를 사용하는 대신 DMin이 별도의 연결을 여는 것을 어떻게 알 수 있습니까? – transistor1
일부 * 경우에는 CurrentDb를 사용하는 것이 제대로 작동하지 않는다는 것을 경험했습니다. 특별히 여러 번 참조 할 때 그렇습니다. 솔직히 말해서 그 내용을 분명히 기억하지 못합니다. 여기에 예제가 있다고 생각합니다. http://social.msdn.microsoft.com/Forums/en-US/accessdev/thread/7ea9506f-5e91-4896-80b9-6712762388ea/ –
+1 매우 흥미 롭습니다. 링크를 이용해 주셔서 감사합니다. 나는 그 특별한 이슈가 왜 작동하지 않았는지 궁금해했고 OpenRecordset()을 사용하여 그걸 밟았습니다. 나는 그것이 (IntelliSense를 통해) 메소드라는 것을 알았지 만, 나는 CurrentDb()를 객체로 생각할 것이라는 것을 인정해야한다. 나는 항상 CurrentDb()가 매번 동일한 참조를 반환한다고 위조했다. – transistor1