복붙노트

[SQL] 어떻게 콤보 <모두 선택>에 대한 기능을 추가하려면 Microsoft Access 폼에서

SQL

어떻게 콤보 <모두 선택>에 대한 기능을 추가하려면 Microsoft Access 폼에서

나는이 ComoBoxes에 추가 "모두 선택"옵션이 필요 액세스 형태에 대해 다른 날 질문을 게시 그래서. 나는 노동 조합을 사용하여의 2에 옵션을 추가 할 수 있었다. 그러나, 옵션은 아직로서 아무것도하지 않습니다. 나는 콤보 상자에서 폼 매개 변수를 사용하고 내가 다시 단서가있어 시간 동안 그것을 쳐다보고 후를 제외하고 모두 선택하는 옵션에 추가해야 할 곳이 쿼리를 발견했다.

데이터베이스는 나에 의해 작성되지 않은, 그것은 약 10 세 그리고 몇 가지 새로운 기능을 추가하기 위해 나에게 주어진 하였다. 나는 그 짓을하고, 소유자는 "모두 선택"버튼을 일한 적이 있다고 불평했다. 연구 후, 버튼을 무효 값으로 콤보 입력을 지 웁니다 VB 스크립트가 있습니다. 나는 내가 콤보 상자 자체에 옵션을 추가 한 이후 지금 사람들을 폐기 계획하고있다.

이 같은 콤보 입력 외모를 읽고 SQL 쿼리 :

PARAMETERS [Forms]![ReportCentre]![cboTreatmentType] Short, [Forms]![ReportCentre]!      [cboTreatmentDate] Short;


SELECT addresses.*,
       [firstname] & "" & [lastname]
       AS Name,
       [street] & "," & [suburb] & "" & [stateorprovince] & "" & [postalcode]
       AS
       Address
FROM   addresses
WHERE  ( ( ( addresses.treatmentid ) = [forms] ! [reportcentre] !
                                                [cbotreatmenttype].[Value] )
         AND ( ( addresses.treatmentdate ) = [forms] ! [reportcentre] !
                                                 [cbotreatmentdate].[Value] )
         AND ( ( addresses.birthmonth ) LIKE [forms] ! [reportcentre] !
                                             [txtbirthmonth].[Value]
                                                 & "*" ) )
        OR ( ( ( addresses.treatmentid ) IS NULL )
             AND
       ( ( addresses.treatmentdate ) = [forms] ! [reportcentre] !
                                           [cbotreatmentdate].[Value] )
             AND ( ( addresses.birthmonth ) LIKE [forms] ! [reportcentre] !
                                                 [txtbirthmonth].[Value]
                                                     & "*" ) )
        OR ( ( ( addresses.treatmentid ) = [forms] ! [reportcentre] !
                                                 [cbotreatmenttype].[Value] )
             AND ( ( addresses.treatmentdate ) IS NULL )
             AND ( ( addresses.birthmonth ) LIKE [forms] ! [reportcentre] !
                                                 [txtbirthmonth].[Value]
                                                     & "*" ) )
        OR ( ( ( addresses.treatmentid ) IS NULL )
             AND ( ( addresses.treatmentdate ) IS NULL )
             AND ( ( addresses.birthmonth ) LIKE [forms] ! [reportcentre] !
                                                 [txtbirthmonth].[Value]
                                                     & "*" ) )
        OR ( ( ( addresses.treatmentid ) IS NULL )
             AND
       ( ( addresses.treatmentdate ) = [forms] ! [reportcentre] !
                                           [cbotreatmentdate].[Value] )
             AND ( ( addresses.birthmonth ) IS NULL ) )
        OR ( ( ( addresses.treatmentid ) = [forms] ! [reportcentre] !
                                                 [cbotreatmenttype].[Value] )
             AND ( ( addresses.treatmentdate ) IS NULL )
             AND ( ( addresses.birthmonth ) IS NULL ) )
        OR ( ( ( addresses.treatmentid ) = [forms] ! [reportcentre] !
                                                 [cbotreatmenttype].[Value] )
             AND
       ( ( addresses.treatmentdate ) = [forms] ! [reportcentre] !
                                           [cbotreatmentdate].[Value] )
             AND ( ( addresses.birthmonth ) IS NULL ) ); 

나는 메신저 도움을 요청하는 이유를 이해하기 어려운 그것의 혼란과를 알고있다. 어떻게 그 모두 선택 상자에 대해 "모두 선택"옵션을 검증하기 위해 어떻게해야합니까?

해결법

  1. ==============================

    1.하나 아주 쉬운 방법은 *로 콤보의 바운드 열을 설정하는 것입니다 :

    하나 아주 쉬운 방법은 *로 콤보의 바운드 열을 설정하는 것입니다 :

     SELECT "*" As ID, "Select All" As AText 
     FROM Table1 
     UNION SELECT Table1.ID, Table1.AText 
     FROM Table1;
    

    콤보를 사용 :

     Select "*" As TreatmentID, "<<All Records>>" As Treatment 
     FROM Treatment 
     UNION 
     Select Treatment.TreatmentID, Treatment.Treatment 
     From Treatment;
    

    그런 다음 LIKE를 사용할 수 있습니다 :

    SELECT Table1.ID
    FROM Table1
    WHERE Table1.ID Like [forms]![MainForm]![Combo]
    

    당신의 SQL을 사용 :

    ... WHERE (((Addresses.TreatmentID) 
      Like [Forms]![ReportCentre]![cboTreatmentType]) AND ...
    

    당신은 단지 하나의 열이있는 경우, 당신은 사용할 수 있습니다 :

    SELECT Table1.Atext
    FROM Table1
    WHERE AText Like 
       IIf(Forms![MainForm]!Combo="Select All","*",Forms![MainForm]!Combo)
    
  2. from https://stackoverflow.com/questions/14503259/how-to-add-functionality-for-combobox-select-all-in-microsoft-access-forms by cc-by-sa and MIT license