나는 콤보 상자의 afterupdate 이벤트에서 폼의 레코드 소스를 변경하고있는 MS ACCESS를 사용하고 있습니다. 여기이 SQL 문에 문제가 있습니까?
Me.RecordSource = "SELECT * FROM qryMIMATRIX WHERE qryMIMATRIX.A_LOCATION = " & Me.cboLocate.Value & ";"
cboLocate 사용되는 SQL 쿼리는 콤보 상자의 이름입니다 및 qryMIMATRIX 쿼리의 이름입니다. 내가 나를 desirable.Help되지 않는 매개 변수를 입력하라는 메시지가 오전의 대한 AfterUpdate 이벤트에 .. a_loaction
필드는 따옴표로 값을 포장 할 필요가 문자열 유형 인 경우
아래의 SQL 삽입 주석에 대해서는 매우 심각합니다. 질의 응답으로 심각한 보안 문제가 발생할 수 있습니다. 기본적으로 콤보 상자를 사용하면 목록에서 선택하지 않고 수동으로 텍스트를 입력 할 수 있습니다. 이것은 누군가가 같은 것을 입력 할 수 있다는 것을 의미합니다 .... somevalue; DROP TABLE blah blah .... –
콤보의 "Limit To List"속성을 Yes로 설정하면 RecordSource SQL 문에 삽입되는 것을 방지 할 수 있습니다. 그러나 Access의 db 엔진은 하나의 명령문 만 처리하기 때문에 DROP TABLE 유형의 주입 공격에 취약하지 않습니다 ... 세미콜론으로 2 개의 명령문을 결합 할 수 없으며 엔진이 두 가지를 모두 수행 할 것으로 기대합니다. – HansUp