책 내용 질문하기
코드작성 분리및 연결 문의
도서
[2013] 컴퓨터활용능력 1급 실기(엑셀, 액세스 2007 사용자용)
페이지
177
조회수
129
작성일
2013-03-09
작성자
첨부파일

2013년판 시나공 컴활 1급 액세스 교재에서 본 내용인데요. [p77해당]

코드 작성 시 컨트롤의 분리 및 연결에 대한 설명이 나와있습니다.

1. 분리하여 연결하지 않아도 되는 경우

[docmd를 이용하는 RunSQL(INSERT문 ,UPDATE문,DELETE문) 명령에서 SQL문이나 조건을 입력할 때는 컨트롤을 분리하여 연결하지 않아도 않고 입력해도 됩니다.]

예) <상품_2>테이블에 있는 레코드 중 'txt상품코드' 컨트롤에 입력된 상품코드와 동일한 레코드 삭제하기

DoCmd.RunSQL "Delete * from 상품_2 where 상품코드 = txt상품코드

2. 반드시 분리하여 연결해야 하는 경우

[DoCmd를 이용한 RunSQL문이지만, 폼의 컨트롤이 아닌 프로시저에서 선언한 변수(변수상품코드)를 사용한 경우네늡 ㅕㄴ수를 분리하여 연결해야 합니다.]

예) <상품_2> 테이블에 있는 레코드 중 변수로 지정된 '변수상품코드'에 입력된 상품코드와 동일한 레코드 삭제하기

Docmd.RunSQL "Delete * from 상품_2 where 상품코드 = '" & 변수상품코드 & "'"

예2) me.filter = "고객코드 ='" & cmb고객코드 & "'"

질문

1.여기서 제가 궁금한 것은 구체적으로 1번과 2번의 차이점이 이해가 잘 가지 않습니다. ㅠㅠ

그리고

2. 위 제시문의 1번의 경우에도 연결하지 않아도 되는 경우라고 했으니깐 그냥 맘편하게 분리하여 연결해도 상관없나요?

답변
2013-03-11 12:09:58

1. 컨트롤 분리는 "상품코드 = '" & txt상품코드 & "'"

를 말하는 것입니다.

이것을 이용하지 않아도 되는 경우는 runsql 문일때와 d가 들어가는 도메인함수 dsum,dcount 등 입니다.

이 경우에는 분리를 하든 하지 않든 정확한 결과가 나오면 되므로 어느 것을 사용하셔도 상관 없습니다.

2. 폼의 컨트롤이 아닌 프로시저에서 선언한 변수(변수상품코드)

프로시저 안에서 선언한 것입니다.

docmd.runsql "Delete * from 상품_2 where 상품코드 =''" & 변수상품코드 & "''"

를 사용하기 전에 필요에 의해서 만들어진 변수 입니다.

만약.. 변수상품코드를 어떤 컨트롤에 입력되어 있는 결과에 따라 달라진다고 할때..

if txt상품명 = "전화기" then
변수상품코드 = 1
else
변수상품코드 = 2
end if

docmd.runsql "Delete * from 상품_2 where 상품코드 =''" & 변수상품코드 & "''"

라고 사용된다면..

변수상품코드에는 1이나 2의 값이 들어가고 상품코드와 비교가 되게 됩니다.

이것이 폼의 컨트롤이 아닌 프로시저에서 선언한 변수 입니다.

좋은 하루 되세요.

"
  • *
    2013-03-11 12:09:58

    1. 컨트롤 분리는 "상품코드 = '" & txt상품코드 & "'"

    를 말하는 것입니다.

    이것을 이용하지 않아도 되는 경우는 runsql 문일때와 d가 들어가는 도메인함수 dsum,dcount 등 입니다.

    이 경우에는 분리를 하든 하지 않든 정확한 결과가 나오면 되므로 어느 것을 사용하셔도 상관 없습니다.

    2. 폼의 컨트롤이 아닌 프로시저에서 선언한 변수(변수상품코드)

    프로시저 안에서 선언한 것입니다.

    docmd.runsql "Delete * from 상품_2 where 상품코드 =''" & 변수상품코드 & "''"

    를 사용하기 전에 필요에 의해서 만들어진 변수 입니다.

    만약.. 변수상품코드를 어떤 컨트롤에 입력되어 있는 결과에 따라 달라진다고 할때..

    if txt상품명 = "전화기" then
    변수상품코드 = 1
    else
    변수상품코드 = 2
    end if

    docmd.runsql "Delete * from 상품_2 where 상품코드 =''" & 변수상품코드 & "''"

    라고 사용된다면..

    변수상품코드에는 1이나 2의 값이 들어가고 상품코드와 비교가 되게 됩니다.

    이것이 폼의 컨트롤이 아닌 프로시저에서 선언한 변수 입니다.

    좋은 하루 되세요.

    "
· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.