나눔터  
  HOME > 나눔터 > 묻고답하기 > 액세스
액세스
액세스에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내
작성자:  

 메이 (ms89755)

추천:  3
파일:     조회:  2641
제목:   액세스 포함된 매크로에서 rnd 함수
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

 - 액세스 버전(95,97,2000,xp,2003,2007): 2007

* 아래줄에 질문을 작성하세요 >> 

(묻고자 하는 질문은 글 아랫쪽에 있음을 미리 알려드립니다)

액세스에서 테이블을 만들어서 레코드를 입력한 다음
그 레코드를 바탕으로 폼을 생성했습니다
폼에다가 컨트롤 단추를 하나 만들어서 그 단추를 클릭할 경우 레코드를 무작위로 표시하도록 만들었습니다

저같은 경우에는 그 단추를 클릭할 경우 포함된 매크로가 실행하도록 이벤트를 설정해놨습니다
매크로함수는 GoToRecord이고
'레코드'는 이동, '오프셋'은 =Int((레코드 총갯수-1+1)*Rnd()+1)로 인수를 설정했습니다

그런데 이렇게 하니까 문제점이 하나 발생했습니다
단추를 누를때마다 레코드가 무작위로 표시되기는 하지만
엑셀함수 중 randbetween처럼 완전한 무작위는 구현이 되지 않았습니다

구체적으로 설명드리자면 파일을 껐다가 켜서 그 단추를 다시 클릭해봤더니
아까전에 무작위로 표시되었었던 그 순서와 똑같은 순서로 레코드가 이동되는 겁니다
말만 무작위이지 이미 순서가 정해져 있는 것 같았습니다


본론으로 들어가서 질문드립니다
Q. 비주얼베이직은 잘 다룰줄 모르는데, 액세스 프로그램만으로 완전한 무작위를 구현할 수 있는 방법은 없는 건가요? 만약 비주얼베이직 등을 이용하게 된다면 어떻게 만들어야 되나요?
 
[불량 게시물 신고]  
황동준위 하신데로 해서 정상적으로 무작위로 잘 이동합니다. 다시 확인해보세요.

엑세스에서 명령을 수행하는 방법은 '매크로' 와 'VBA명령'을 사용합니다. 둘다 엑세스 자체에서 지원 합니다.
위 매크로 명령을 vba로 작성 한다면 아래와 같습니다.

DoCmd.GoToRecord , , , Int((DCount("*", "테이블명") - 1 + 1) * Rnd() + 1)
09-16 (19:44)
삭제 ■신고
메이말씀듣고 다시 확인해봤는데 껐다켜도 계속 똑같아요 ㅠㅠ
현재 레코드 갯수가 480개인데
339 → 257 → 279 → 139 → 145 → 372 → 7 → 366 → 391 → 341
버튼을 10번 눌렀을 때 이 번호 순서대로 레코드가 표시됩니다
09-16 (22:58)
삭제 ■신고
        
  

작성일 : 2019-09-10(23:08)
최종수정일 : 2019-09-10(23:44)
 


 ◎ 관련글

  제 목   작성자   날짜
액세스 포함된 매크로에서 rnd 함수 메이 2019-09-10
[RE]액세스 포함된 매크로에서 rnd 함수 황동준 2019-09-17
[RE]액세스 포함된 매크로에서 rnd 함수 메이 2019-09-17
[RE]액세스 포함된 매크로에서 rnd 함수 황동준 2019-09-18