365p의 마지막 문제에서는 메세지 박스에 전체 몇 건인지 세야할 때
[a3].CurrentRegion.Rows.Count - 1 를 사용합니다.
381p의 문제 4-3 고객번호를 입력할 때는 입력행-3 을 사용합니다.
이 둘의 차이가 무엇인가요?
쉽게 설명 한다면
입력행=[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)=이름
으로 작성하시면 셀에 입력하는 입력 프로시저가 되는 것입니다.
기준행위치에서 3이 치환되고 기준범위행수에서 1이 치환되어
3+1 이 되어 입력행은 4가 됩니다.
첫번째 입력되는 값에는 1 이 입력되어야 하므로
4-3 을 해야 1이 된다는 말인 것이죠.
데이터가 계속 입력되면
5, 6, 7 과 같이 입력행이 늘어날 것이고 여기에 -3 을 하면 2,3,4, 와 같은 결과가 나온다는 것입니다.
좋은 하루 되세요.
-
관리자2022-06-07 20:19:16
쉽게 설명 한다면
입력행=[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)=이름
으로 작성하시면 셀에 입력하는 입력 프로시저가 되는 것입니다.
기준행위치에서 3이 치환되고 기준범위행수에서 1이 치환되어
3+1 이 되어 입력행은 4가 됩니다.
첫번째 입력되는 값에는 1 이 입력되어야 하므로
4-3 을 해야 1이 된다는 말인 것이죠.
데이터가 계속 입력되면
5, 6, 7 과 같이 입력행이 늘어날 것이고 여기에 -3 을 하면 2,3,4, 와 같은 결과가 나온다는 것입니다.
좋은 하루 되세요.
-
관리자2022-06-13 20:39:39
결과가 같게 나오는 것이라면 어느 것을 사용하든 상관 없습니다.
입력행이라는 변수를 만들어 놨기 때문에 입력행을 사용한 것이고,
이것을 풀어서 길게 코드로 작성하셔도 상관 없는 부분입니다.
좋은 하루 되세요.
-
*2022-06-10 05:53:05
제가 질문을 이상하게 했나봅니다.
조회 입력 혹은 왼쪽 오른쪽이 헷갈린다는 그런 것이 아니라
같은 데이터 수를 세어서 나타내는 것인데
어떤 문제에서는 [a3].CurrentRegion.Rows.Count - 3 을 사용하고 어떤 문제에서는 입력행 -3 을 사용하는 것이 이해를 못하겠다는 것입니다.