2016-11-24 1 views
0

일부 제품에는 Access 데이터베이스가 있습니다. 제품 참조별로 그룹화했습니다. 또한 각 참조에 대한 색상 변화 및 크기의 수를 세는 두 개의 열을 보았습니다. 액세스> 복수 필드의 경우

은 그래서 필드 [REFID], [색상] 및 [크기]

지금은 나중에 편리하게 될 것입니다 경우를 계산하기 위해이 정보를 사용할 있어요. 그리고 그것이 내가 도움이 필요한 곳입니다. 난 아직 초보자 해요하지만이 같은 생각 :

Public Function variantCase() As Integer 

[sizes] = sizes 
[colors] = colors 

    Select Case Variante 
     Case sizes > 0 And colors < 1 
      variant = 1 
     Case sizes > 0 And colors > 1 
      variant = 2 
    End Select 
End Function 

그 두 사례 만 예를 참고하시기 바랍니다. 분이있을거야. 7 더.

하지만 아직 작동하지 않는 것 같습니다. 도와 주시겠습니까? (:

아, 그리고 당신이 더 많은 정보를 필요로하는 경우,

감사


UPDATE 문의 주시기 바랍니다!.

그것은이었다 잠시,하지만 난 여전히 도움이 필요합니다. 는 내가 가진 무엇 지금까지입니다 :

Public Function containerVariant() 

    Dim db As DAO.Database 
    Dim rs As DAO.Recordset 

    Set db = Application.CurrentDb 
    Set rs = db.OpenRecordset("MyTable") 

    Dim NumberOfSizes As String 
    Dim NumberOfColors As String 
    Dim Variant As String 

Select Case NumberOfSizes 
     Case Is > 0 
      Select Case NumberOfColors 
       Case Is < 0 
        Variant = 1 
       Case Is > 0 
        Variant = 2 
      End Select 

     Case Else 
      Variant = 9 
End Select 

End Function 

적어도 내가 어떤 오류 MES를하지 않습니다 현자,하지만 이것은 아무것도하지 않는 것 같습니다. 이 함수를 Access SQL에 포함했지만 새로운 Variant-Column의 모든 필드는 여전히 비어 있습니다. 그럼, 내 액세스 테이블에 결과를 보려면 무엇을 추가/변경해야합니까?

답변

0

보기 만들기는 어떻습니까?

create view v_products as 
    select p.*, 
      iif(sizes > 0 And colors < 1, 1, 
       iif(sizes > 0 And colors > 1, 2, NULL)) as variant 
    from products as p; 

그런 다음보기에 액세스하여 의사 열 variant을 가져옵니다.

+0

음,이 두 사례는 단지 예일뿐입니다. 적어도 7 명이 더있을 것입니다. 그리고 케이스를 사용하여 처리하는 것이 더 쉬울 수도 있다고 생각했습니다. – Manisch

+0

@Manisch. . . 하나의 옵션은'iif()'표현식을 중첩하는 것이다. 대안은'switch' 함수 (https://www.techonthenet.com/access/functions/advanced/switch.php)를 사용하는 것입니다. –

0

중첩 된 CASE 문을 사용해보십시오. 당신이 보여준 방식은 하나의 변수를 검사하는 것이 아닙니다. 저는 이것이 어떻게 CASE가 작동하는지 믿습니다.

Select Case Sizes 
     Case > 0 
      Select case colors 
       Case is < 0 
        variant = 1 
       Case is > 0 
        variant = 2 
      End Select 

     Case ELSE 
      ' etc, etc, etc 
End Select 
+0

당신의 해결책을 잘 모르겠습니다. 언급 된 "크기"의 수는 어디에 있습니까? – Manisch

+0

아, 죄송합니다. 지금은 생각합니다. D – Manisch

+0

한 가지 더 간단한 질문을 해봐야 할 것 같습니다. 실제로 VBA에서 Access 열을 어떻게 호출합니까? 아직도 내가 뭔가 잘못하고있는 것 같아. 열의 이름은 "NumberofSIZE"및 "NumberofCOLOR"입니다. 또는 다른 말로하면 : 전체 설정은 어떻게되어야합니까? – Manisch

관련 문제