바보처럼 코딩하기 89

바코2://#20. 공급자 및 공급담당자 폼 생성

고객폼과 고객담당자 폼이 완성됐습니다. 이제 공급자와 공급담당자 폼을 구성해야합니다. 다이어그램상에서 고객테이블과 공급자테이블을 비교해 보면 필드 하나를 제외하고 모두 같은걸 확인 할 수 있습니다. "자사확인" 필드가 있습니다. 이 필드는 폼으로 구성하지 않고 테이블에 직접 입력하면 되는 부분입니다. 그렇다면 '공급자' 테이블의 필드와 '고객' 테이블의 필드가 일치하는 군요. '고객등록' 폼을 ctrl+c로 해서 ctrl+v로 붙여넣기를 해줍니다. 이름은 공급자등록으로 만들겠습니다. 공급자폼 생성 및 수정 공급자등록 폼을 디자인 보기로 열고 가장 먼저 눈에 띄는 레이블을 고객등록에서 공급자 등록으로 변경해주겠습니다. alt+f11을 눌러 VBA창에서 "Form_공급자등록"을 선택하시고 ctrl+F를 눌러..

바코2://#19. 하위 개념 사용해보기(3) - 중간 오류 수정

폼을 구성하는데 사용자가 사용하는 방식으로 체크해봐야 할것들이 있습니다. 개발자 입장에서 본다면 생각보다 사용자는 무자비 합니다. ㅎㅎㅎ 모든 버튼을 순서와 상관없이 누릅니다. 개발자가 가장 머리아픈이유가 이런데 있는것 같습니다. 변수를 생각해서 변수 방지를 위한 코드를 해야합니다. 개발자 축에도 못끼는 제가 이런 말을 하다니...다른 사람이 내 프로그램을 사용하는 순간, 당신은 이미 개발자 입장일 수 밖에 없다는 점!!! 실제로 만든 프로그램에 오류가 뜨거나, 느리면 사용자들이 엉터리 프로그램을 만들었다며, 마음에 상처를 ㅠ.ㅜ 작동하는 코드가 있다면, 오류가 나지 않게 하는 코딩이 필요합니다. 이 포스트에서는 에러처리 코드를 사용하지는 않겠지만 대표적으로는 on error 문이 있습니다. 알아두시면 ..

바코2://#18. 하위 개념 사용해보기(3)

고객등록 폼에 고객 담당자라는 버튼을 만들고 이름을 버고객담당자 라고 지정한 후, on click() 에 코드 삽입을 하겠습니다. 새로 배우는 명령어가 있습니다. 폼을 열어라! DoCmd.OpenForm “ “ https://docs.microsoft.com/en-us/office/vba/api/access.docmd DoCmd object (Access) Office VBA reference topic docs.microsoft.com 크롬에서 MS문서 한글로 보는법은 https://support.google.com/translate/answer/2534559?hl=ko&co=GENIE.Platform%3DDesktop 웹페이지 및 문서 번역 - 컴퓨터 - Google Translate 고객센터 도움이..

바코2://#17. 하위 개념 사용해보기(2)

* currentdb.execute~ 복습하기 1. 수정 코드 버저장_click() 에 수정 코드를 넣어봅시다. 저번 시간 처럼 이번에도 코드 확장을 보여주는 방식으로 진행해보겠습니다. Q. 이렇게 하는 이유는 뭔가요? 순서대로 그냥 쭉 적으면 안되나요? A. 물론 순서대로 적는다고 문제가 될일은 없습니다. 하지만 이렇게 하는 이유는 점(.)이나 부호(')하나 차이로 에러를 뱉기때문에, 그 횟수를 줄이기 위해서라고 말씀드리겠습니다. 오류가 한 문장당 한번이면 1000개의 코딩을 하는데 1000번에 해당하는 시간과 수정을 거쳐야 하기때문에 그 피로도는 생산성과 연관이 있다는 점을 말씀드리고 싶습니다. (여담으로 1000개의 문장이 오버 같아 보이실 수 있겠지만...만들어 보시면 문장 1000개는 뭐......

바코2://#16. 하위 개념 사용해보기

Q. 하위 개념? 그게 뭔가요? 여러가지로 사용되거나 다양한 사례들이 있지만, 거두 절미하고 컴팩트하게 포스트에서 연재하는 내용만 다루겠습니다. 우리는 '고객'테이블 외에 '고객담당자'라는 테이블을 만들어 놨습니다. 고객 테이블에 필드를 추가해서 사용할 수 있지만, 담당자가 몇명까지 늘어날지 아무도 모르죠. 필드를 미리 2명정도 생각해서 만들어 두더라도, 2명이상 계속 증가 할 수도 있습니다. 이런 점을 보완하기 위해서 독립 테이블을 만들어 사용하면 나중에 고객 테이블을 따로 수정을 안해도 계속 사용 할 수 있습니다. 이런식으로 고객ID를 가지고 코딩으로 연결해서 사용할 예정입니다. 관계설정에서 직접 연결해서 사용하기도 하지만, 우리는 지금 unbound로 만들어 사용중이니 열쇠가 될만한 녀석을 다른 테..

바코2://#15. 기초 코딩, 폼 다듬기 2 - 메세지 박스와 삭제

각 버튼마다 "이벤트가 발생됐는지"를 직관적으로 바로 알려줄 수 있는 기능이 메시지 박스 입니다. https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/msgbox-function MsgBox function (Visual Basic for Applications) Office VBA reference topic docs.microsoft.com 메시지 박스 함수에 대한 내용은 링크에서 확인해보시기 바랍니다. 제가 링크 드리는것들은 크롬으로 보실때 한글 번역해서 보실수도 있습니다. https://support.google.com/chrome/answer/173424?hl=ko&co=GENIE.Platform%3..

바코2://#14. 기초 코딩, 폼 다듬기

수정까지 마쳤는데, 중간 폼이 작동할때 어색한 부분이나 뭔가 조미료 같이 필요한 알람이 있는지 확인 해볼 필요가 있습니다. 우리는 개발자라서 어떤 로직을 따라가는지 알지만, 막상 사용자는 실행이 된건지 아닌지 확인을 찾아서 하게되기 때문입니다. 간단한 폼이지만 먼저 사용을 하면서 매끄럽게 만들부분이 있는지 확인 해보겠습니다. 먼저 살펴볼 부분은 폼이 열릴때 최초 커서가 어디에 위치하는지 작성인지 검색인지에 따라서 그 다음 행위가 어디서 이뤄져야하는지 각 버튼의 이벤트 이후 어떤 작업이 이뤄져야하는지 봐야합니다. 폼을 열고 보시면서 다이어 그램으로 시퀀스를 그려보겠습니다. (영상으로 해보니, 잘 표현이 안되더군요 ㅎㅎ) 대략 이런 시퀀스가 필요한것 같습니다. 1. 검색창 기준 포커스 이동 처음에 폼이 열리..

바코2://#13. 기초 코딩, 버튼에 코딩삽입(5) - 수정2

버저장_click() 노란 줄친 부분의 코드를 수정하겠습니다. (VBA 창은 뭐다? alt+F11) 이전 시간에 사용한 방법인 레코드셋을 이용해서 수정하는 방법으로 해보겠습니다. excute로 바로 적용시키는 방법과 레코드 셋을 사용하는 방법을 시간이 지나면 동시에 사용해야 하는 경우들이 생깁니다. 두 가지 방법을 다 알아두시길 권합니다. 반복하자면 각각 3가지가 기본입니다. 새 레코드 추가 수정 삭제 current.excute 뒤에 insert into update set delete recordset을 이용하는 경우는 .addnew .edit .delete 를 사용합니다. 여기서는 recordset을 이용해서 2번인 .edit을 이용해서 수정을 해보겠습니다. 코딩에 앞서 우리가 가진 재료중 가장 중요..

바코2://#12. 기초 코딩, 버튼에 코딩삽입(4) - 수정

이번 포스트에서 진행할 내용 리스트 선택시 데이터 뿌리기 레코드 셋을 이용하는 방법 수정하기 검색리스트에 After Update 코드삽입을 진행합니다. Private Sub 검색리스트_AfterUpdate() ID = 검색리스트 End Sub 버검색을 누르면 검색리스트에 리스트가 나타나고(검색어가 없는 경우 전체 리스트가 나옴), 검색리스트에서 업체명을 클릭해주면, ID가 바뀝니다. 리스트 클릭을 해서 데이터를 텍스트 필드에 뿌려주는 방법은 두가지 정도를 많이 사용하는데, 둘다 알려드리고 속도면에서 조금 더 빠른 방법을 설명을 해드리겠습니다. 1. 레코드셋으로 불러오기 Private Sub 검색리스트_AfterUpdate() '레코드 셋을 이용한 방법 ID = 검색리스트 Dim RS As DAO.Reco..

바코2://#11. 기초 코딩, 버튼에 코딩삽입(3) - 검색2

고객 테이블에 쓸 재료가 완성됐습니다. 버검색의_click() 코드를 작성하겠습니다. VBA창은 alt+F11을 누르시면 열립니다. 아! 코딩 초보자들을 대상으로 하니 우선 쿼리 사용을 좀 해봐야겠군요. 만들기 > 쿼리 디자인 을 누릅니다. 테이블 표시 창이 열리면, 테이블 이름인 고객을 더블클릭 하거나 고객을 선택한뒤 추가 버튼을 누릅니다. 화살표 처럼 추가된게 보이면 테이블 표시창은 X 닫기를 합니다. 3개의 업체가 똑같이 가진에 ID, 업체명 뿐이라 우선은 ID, 업체명에 각각 더블클릭을 해줍니다. 더블 클릭을 하면 아래 필드에 채워집니다. *잠시 디자인 보기, 데이터시트보기, SQL보기도 같이 진행하겠습니다. 쿼리1 탭에> 우클릭 > 데이터시트 보기 를하면 현재 데이터를 확인 할 수 있습니다. S..