2013-07-08 2 views
0

나는 이것에 조금 새로운 그래서 나와 함께 곰. :)VBA 액세스 2007 년 종속 자동 증가

Access 2007 데이터베이스에서 내 양식 중 하나에 이벤트를 추가하려고합니다.아이디어는 CustomerNumber 필드에 값을 입력하면 OrderNumber 필드가 해당 고객의 다음 주문 번호를 자동으로 파악한다는 것입니다. 우리 것 CUSTOMERNUMBER = 1 다음 OrderNumber를 입력하면,이 경우

Orders 
CustomerNumber OrderNumber Description 
1     1    Whatever 
1     2    Blah 
2     1    Yada 
5     1    Yada 
2     2    Yada 
1     3    Foo 

: 예를 들어,

(그 고객이 개 이전 주문이있는 경우, OrderNumber를이 3 할 것이다) 우리는 테이블이 있다고 가정 해당 고객에 대해 세 가지 이전 주.이 있으므로 OrderNumber = 4임을 확인하십시오.

마찬가지로, CUSTOMERNUMBER =이 경우, 다음 OrderNumber를 = 3

나는 다음과 같은 코드를 가지고,하지만 난 그래서 Orders 테이블 (변수 Y)에 대한 참조를 설정 문제가 있습니다 해당 고객의 주문 수를 계산할 수 있습니다.

아이디어가 있으십니까? 사전에

Private Sub CustomerNumber_AfterUpdate() 
Dim CustNo As Integer 
Dim x As Integer 
Dim y As Object 
CustNo = CustomerNumber.Value 
y = Nz(DLookup("CustomerNumber", "Orders"), "") 
x = DCount("OrderNumber", "Orders", CustNo = y) 
OrderNumber = x + 1 
End Sub 

감사합니다,

카브 랄

+0

이상 한 사람이 이제까지 동시에 응용 프로그램을 사용할 것인가? – HansUp

+0

@Hansup : 예, 동시에 여러 사람이 사용할 수 있습니다. – Cabral

답변

0

나는 당신이 그것을 당신이 길을 계산하려고하는 이유를 전혀 모르겠지만 유일한 목표는 얻을 경우 주문이에 대한 계산 주어진 고객 번호는 무엇입니까?

DCount("OrderNumber", "Orders", "CustomerNumber = " & myCustNo) 
+0

안녕하세요 쉐어가 나를 위해 작동하지 않는 어떤 이유로 든 – Cabral

0

나는 그것을 얻었습니다. 나는 그 초기 게시물을 만들 때 나는 잘못된 방향으로 향하게되었다고 생각한다. sql 버전을 실행하기 위해 vba 코드를 작성하기에 SQL에서 그렇게하는 것은 쉽습니다. 감사합니다, 카브 랄

Private Sub CustomerNumber_AfterUpdate() 
Dim CustNo As Integer 
Dim sqlQuery As Object 
CustNo = CustomerNumber.Value 
Set sqlQuery = CurrentDb.OpenRecordset("SELECT COUNT(Orders.CustomerNumber)as Count FROM Orders WHERE CustomerNumber = " & CustNo & ";") 
OrderNumber = sqlQuery.Count + 1 
End Sub 
+0

다른 사용자가 다른 고객 번호를 가지므로 괜찮습니다. 주문 번호는 고유하지 않지만 고객 번호와 주문 번호의 조합이됩니다. – Cabral