프로시저 엄청어렵네요....ㅜㅜ
226page 기본문제
5번이랑 6번이 비슷하잖아요
5번은
기준행위치 = [b3].Row
기준범위행수 = [b3].CurrentRegion.Rows.Count
입력행 = 기준행위치 + 기준범위행수
Cells(입력행, 2) = CDate(txt판매일자)
Cells(입력행, 3) = txt제품명
Cells(입력행, 4) = txt수량
Cells(입력행, 5) = txt단가
Cells(입력행, 6) = Format(Val(txt수량) * Val(txt단가), "currency")
Cells(입력행, 7) = cmb결재형태
6번은
기준행위치 = [b3].Row
기준범위행수 = [b3].CurrentRegion.Rows.Count - 1
입력행 = 기준행위치 + 기준범위행수
txt판매일자 = Cells(입력행, 2)
txt제품명 = Cells(입력행, 3)
txt수량 = Cells(입력행, 4)
txt단가 = Cells(입력행, 5)
이건데요.
[질문1]왜이렇게 되는건지 모르겠어요.
5번(마지막행 다음에)랑 6번(제일 마지막의 판매일자~~~에 표시)라서 차이가 있는데
위에 식을 보면 차이를 모르겠어요.
그리고 입력행,2라고 되어있는데 이건 왜 2부터 시작인가요???
[질문2]기준행위치 = [b3].Row
기준범위행수 = [b3].CurrentRegion.Rows.Count
입력행 = 기준행위치 + 기준범위행수
이건 왜 이렇게 되는거예요?? 질문의 어떤부분에 근거해서 세워진 식인지 모르겠어요...ㅜㅜㅜㅜㅜ
다 이렇게 시작하던데 그냥 외우나요..??
[질문3]그리고 프로시저 선택콤보상자에 여러가지 있는데 그거 각각 어떨때 쓰이는지 알려주세요. 책에 그냥 "어떤것"으로 하라. 라고만 나와있고 왜그런지 안나와있어서 잘 모르겠어요
예를들면 userform, initialize
[질문4]cdate 이건 뭐예요??????
[질문5] 226page 5번 마지막에서 두번째에 보면 "데이터를 추가하거나 삭제하여도 항상 마지막 데이터 다음에 입력되어야한다" 이거는 어떤 식으로 어디에 들어가 있는거예요? 어디있는지 모르겠어요.
[질문6]
244page 문제2번의 4. userform_initialize프로시저에 다음과 같이 콤보상자에 목록을 채우는 코드를 입력하세요. 라고되어있는데요
왜 여기에 입력하는거예요???
돌아가서 콤보상자 '조회구분'클릭하고 입력해야하는거 아니예요???
5. 목록상자에 목록을~~~ 이것도 여기에 그냥 입력했네요
왜그런거예요??
1. 문제 5번은 폼의 내용을 셀에 입력하는 내용이고
6번은 셀에 입력된 마지막 데이터를 폼에 표시하는 내용 즉 조회하는 프로시저 입니다.
그러므로 두 식은 반대로 표시가 되는 것입니다.
cells(입력행,2)
입력행은 행을 뜻하는 것이고 2는 열을 뜻합니다.
2번째 열에 입력되어야 하는 내용이 판매일자 이므로 2번째 를 사용한 것입니다.
첫번째 열에 판매일자가 입력되어야 한다면 1 이 되었겠죠.
입력행=[a3].row+[a3].currentregion.count
은 입력 버튼, 즉 컨트롤에 입력된 값을 마지막 셀뒤에 입력 할때 사용 하는 것이구요.
입력행=[a3].row+[a3].currentregion.count -1
은 조회 버튼, 즉 셀에 입력된 값의 마지막 데이터를 조회할때 사용 하는 것입니다.
[a3].row 는 a3의 행위치를 나타내므로 3이 나오구요.
[a3].currentregion.rows.count 는 a3부터 입력되어 있는 값들의 개수를 세게 됩니다.
a3부터 3줄의 데이터가 있다면 이 값은 3이 되고
3+3 이 되어 6 행이 되는 것이죠. (필드명 포함해서 입니다. 필드명부터 4줄이라면 4를 더해주셔야 합니다.)
즉 6번행부터 입력하게 합니다.
이것은 마지막 데이터 다음줄에 값을 입력 하는 입력 프로시저에 사용하는 것이고
여기에 -1 을 하신다면 마지막 줄을 조회하여 폼에 나타나게 하는 조회 프로시저를 작성 하는 것입니다.
이름=cells(입력행,1)
과 같이 나타내는 것은 이름에 셀에 입력된 값을 입력 하라는 것으로 셀에 입력된 값을 폼에 입력하게 하는
조회 하실때 사용하는 것이구요.
cells(입력행,1)=이름
은 셀에 폼의 컨트롤에 입력된 이름 값을 셀에 입력 하라는 것으로
입력 프로시저를 작성할 때 사용하는 것입니다.
프로시저에서 =은 같다가 아니라
오른쪽에 있는 데이터를 왼쪽으로 넣는다 라는 개념으로 생각 하셔야 합니다.
즉
입력행 = [a3].row + [a3].currentregion.rows.count -1
이름=cells(입력행,1)
과 같이 작성하시면 조회를 하는 프로시저이고
입력행 = [a3].row + [a3].currentregion.rows.count
cells(입력행,1)=이름
으로 작성하시면 셀에 입력하는 입력 프로시저가 되는 것입니다.
2. 기준행 위치는 데이터가 처음 시작한 위치를 말하고
기준범위행수는 기준행과 연결된 데이터가 몇행인지를 세기 위한 것입니다.
이렇게 사용한 것은 데이터가 더 입력되었을때 그 다음행에 값이 입력될 수 있도록 설정하기 위한 것입니다.
꼭
기준행위치 = [b3].Row
기준범위행수 = [b3].CurrentRegion.Rows.Count
입력행 = 기준행위치 + 기준범위행수
이렇게 풀어쓰지 않고
입력행 = [b3].Row + [b3].CurrentRegion.Rows.Count
와 같이 사용하셔도 상관 없습니다.
3.
폼이 나타나고, 폼이 초기화 될때 라는 말이 있으면
initialize에 작성하시면 됩니다.
폼이 실행되었을때 콤보상자에 적용하는 문제이기 때문에 initialize에 작성하셔야 합니다.
4.
cdate 함수는 텍스트 형식의 데이터를 날짜 형식으로 변경해 주는 함수입니다.
컨트롤에 입력된 값이 2009-09-02와 같이 날짜 형식으로 되어 있다고 해도 이것을 텍스트로 인식하는 경우가 있습니다.
그러므로 cdate를 사용하여 날짜 형식으로 변경해 주는 것입니다.
이것을 사용하지 않아도 날짜 형식으로 입력되었다면 생략해도 상관 없습니다.
5. 기준행위치 = [b3].Row
기준범위행수 = [b3].CurrentRegion.Rows.Count
입력행 = 기준행위치 + 기준범위행수
2번에서 설명했듯이 그 조건을 만족하기 위해 사용하는 것입니다.
6. 폼이 실행되면 조회구분을 선택하는 콤보상자(cmb조회구분) 목록에 ~~~ 이 추가되는 프로시저를 작성하시오.
라고 했기 때문이죠.
마찮가지로 고객관리 폼이 실행되면 [i4:i8] 영역의 값들이 등급종류(lst등급종류)의 목록에 추가되도록 프로시저를 작성하라고 했기 떄문입니다.
문제에서 폼이 실행되면~ 이라는 말이 있으면 initialize 속성을 이용하시면 됩니다.
좋은 하루 되세요.
"-
*2013-07-25 00:32:58
1. 문제 5번은 폼의 내용을 셀에 입력하는 내용이고
6번은 셀에 입력된 마지막 데이터를 폼에 표시하는 내용 즉 조회하는 프로시저 입니다.
그러므로 두 식은 반대로 표시가 되는 것입니다.
cells(입력행,2)
입력행은 행을 뜻하는 것이고 2는 열을 뜻합니다.
2번째 열에 입력되어야 하는 내용이 판매일자 이므로 2번째 를 사용한 것입니다.
첫번째 열에 판매일자가 입력되어야 한다면 1 이 되었겠죠.
입력행=[a3].row+[a3].currentregion.count
은 입력 버튼, 즉 컨트롤에 입력된 값을 마지막 셀뒤에 입력 할때 사용 하는 것이구요.
입력행=[a3].row+[a3].currentregion.count -1
은 조회 버튼, 즉 셀에 입력된 값의 마지막 데이터를 조회할때 사용 하는 것입니다.
[a3].row 는 a3의 행위치를 나타내므로 3이 나오구요.[a3].currentregion.rows.count 는 a3부터 입력되어 있는 값들의 개수를 세게 됩니다.
a3부터 3줄의 데이터가 있다면 이 값은 3이 되고
3+3 이 되어 6 행이 되는 것이죠. (필드명 포함해서 입니다. 필드명부터 4줄이라면 4를 더해주셔야 합니다.)
즉 6번행부터 입력하게 합니다.
이것은 마지막 데이터 다음줄에 값을 입력 하는 입력 프로시저에 사용하는 것이고
여기에 -1 을 하신다면 마지막 줄을 조회하여 폼에 나타나게 하는 조회 프로시저를 작성 하는 것입니다.
이름=cells(입력행,1)
과 같이 나타내는 것은 이름에 셀에 입력된 값을 입력 하라는 것으로 셀에 입력된 값을 폼에 입력하게 하는
조회 하실때 사용하는 것이구요.
cells(입력행,1)=이름
은 셀에 폼의 컨트롤에 입력된 이름 값을 셀에 입력 하라는 것으로
입력 프로시저를 작성할 때 사용하는 것입니다.
프로시저에서 =은 같다가 아니라
오른쪽에 있는 데이터를 왼쪽으로 넣는다 라는 개념으로 생각 하셔야 합니다.
즉
입력행 = [a3].row + [a3].currentregion.rows.count -1
이름=cells(입력행,1)
과 같이 작성하시면 조회를 하는 프로시저이고
입력행 = [a3].row + [a3].currentregion.rows.count
cells(입력행,1)=이름
으로 작성하시면 셀에 입력하는 입력 프로시저가 되는 것입니다.
2. 기준행 위치는 데이터가 처음 시작한 위치를 말하고
기준범위행수는 기준행과 연결된 데이터가 몇행인지를 세기 위한 것입니다.
이렇게 사용한 것은 데이터가 더 입력되었을때 그 다음행에 값이 입력될 수 있도록 설정하기 위한 것입니다.
꼭
기준행위치 = [b3].Row
기준범위행수 = [b3].CurrentRegion.Rows.Count
입력행 = 기준행위치 + 기준범위행수
이렇게 풀어쓰지 않고
입력행 = [b3].Row + [b3].CurrentRegion.Rows.Count
와 같이 사용하셔도 상관 없습니다.
3.
폼이 나타나고, 폼이 초기화 될때 라는 말이 있으면
initialize에 작성하시면 됩니다.
폼이 실행되었을때 콤보상자에 적용하는 문제이기 때문에 initialize에 작성하셔야 합니다.
4.
cdate 함수는 텍스트 형식의 데이터를 날짜 형식으로 변경해 주는 함수입니다.
컨트롤에 입력된 값이 2009-09-02와 같이 날짜 형식으로 되어 있다고 해도 이것을 텍스트로 인식하는 경우가 있습니다.
그러므로 cdate를 사용하여 날짜 형식으로 변경해 주는 것입니다.
이것을 사용하지 않아도 날짜 형식으로 입력되었다면 생략해도 상관 없습니다.
5. 기준행위치 = [b3].Row
기준범위행수 = [b3].CurrentRegion.Rows.Count
입력행 = 기준행위치 + 기준범위행수
2번에서 설명했듯이 그 조건을 만족하기 위해 사용하는 것입니다.
6. 폼이 실행되면 조회구분을 선택하는 콤보상자(cmb조회구분) 목록에 ~~~ 이 추가되는 프로시저를 작성하시오.
라고 했기 때문이죠.
마찮가지로 고객관리 폼이 실행되면 [i4:i8] 영역의 값들이 등급종류(lst등급종류)의 목록에 추가되도록 프로시저를 작성하라고 했기 떄문입니다.
문제에서 폼이 실행되면~ 이라는 말이 있으면 initialize 속성을 이용하시면 됩니다.
좋은 하루 되세요.
"