2009-10-02 2 views
1

그래서 텍스트 상자, 콤보 상자 등이있는이 양식이 있습니다. 양식 모듈에 중복이 있는지 확인하는 VB가 있습니다. 다음 몇 가지 업데이트 쿼리를 실행하여 테이블에 정보를 저장하십시오. 위대한 작품.MS Access 2003 - 양식 출력에서 ​​텍스트 파일로의 정보

제 질문은이 양식 모듈에서이 모든 개체 (txt, cmb 등)의 정보를 가져 와서 출력/텍스트 파일로 저장하는 데 사용할 수있는 VB 메서드입니다.

난 그냥 예를 들어 다음과 같은 세 가지 텍스트 상자 형태로 사용하는 것이

: 나는 데이터베이스 테이블이를 추가하는 비주얼 베이직을 알고 있지만, 내가 정보를 저장할 수 찾고 있어요

Text1 - String 
Text2 - Date 
Text3 - True/False 

을 텍스트 파일에 저장 한 다음 SendObject 메서드를 사용하여 필드에서 hq로 이러한 텍스트 파일을 전자 메일로 보낸 다음 더 큰 db에 배치 할 수 있습니다.

outlook sendobject 나는 그 부분에 꽤 좋은 핸들이 있다고 생각하는데, 그 안에 데이터가있는 텍스트 파일을 만드는 방법을 알아야합니다. 도와 주셔서 감사합니다! 폼에 컨트롤의 collecton을 반복 할 수

+1

양식은 데이터를 입력하기위한 것이지 다른 데이터베이스로 보내기위한 것이 아닙니다. – Fionnuala

+0

일반적으로 사실이며, 틀림없이 이것은 이상하지만 상황은 그대로입니다.이 작업을 수행 할 수 있음을 알고 있지만 (리소스가 부족한 방법 임에도 불구하고) 리소스와 요구 사항으로 인해이 작업을 완료해야하는 가장 좋은 방법입니다. 실제로이 도구와 같은 다른 Access 도구가 있지만 만들지 않았습니다. 그래서 저는 이걸 어떻게 할 수 있는지를 알아 내려고 노력하고 있습니다, 이상하지만 필요한 방식으로. – Justin

답변

1

컨트롤, 텍스트 상자, 콤보 상자 등이 레코드 세트에 묶여 있습니까? 이 경우 텍스트 파일을 통해 컨트롤의 값을 수집하는 대신 관련 테이블 레코드를 누구 에게든 보내거나하는 것이 좋지 않습니까? 나는 이것이 끝날 수 있다는 것을 의미하지만, 나는 그것을 정말로 이상하게 느낀다!

편집 :

Dim m_dataInForm as string, _ 
    m_control as control 

m_dataInForm = "Page Header" 
for each m_control in screen.activeForm.section(1) 
    m_dataInForm = m_dataInForm & m_control.caption & ": " & m_control.value & vbCr & vbLf 
Next m_control 
m_dataInForm = "Details" 
for each m_control in screen.activeForm.section(o) 
    m_dataInForm = m_dataInForm & m_control.caption & ": " & m_control.value & vbCr & vbLf 
Next m_control 
m_dataInForm = "Page footer" 
for each m_control in screen.activeForm.section(2) 
    m_dataInForm = m_dataInForm & m_control.caption & ": " & m_control.value & vbCr & vbLf 
Next m_control 

m_dataInForm 다음 모든 데이터 제목 (.caption)과 가치 (.value)을 포함합니다 : @galleySlave 의견에 따라, 하나 개의 아이디어는 이것과 같은 코드를 작성하는 것입니다. 캡션 (줄과 같은)이나 값 (레이블과 같은)이 없거나 예상 된 형식 (-1 대신 '예')으로 값을 가져 오는 컨트롤의 오류를 방지하려면 추가 코드가 필요할 수 있습니다. 이 뜻은 당신에게 같은

SELECT CASE m_control.controlType 

과 같은 몇 가지 추가 지침 그런 다음 어딘가에 파일로 텍스트 메시지에 m_dataInForm 값 중 하나를 전송하거나 저장 할 수 있습니다 비용이 든다.

+0

이것은 복잡합니다. 이것은 어소시에이트 랩톱에있는 테이블이나 네트워크와 실제 연결이없는 단순한 원격 MDE 여야합니다. 그래서 이것은 가능합니다. 왜냐하면 실제로 본 적이 있기 때문에, 다른 부서에서 활용하고있는 유사한 MS Access 도구가 이미 있습니다. 그래서이 텍스트 상자, 콤보 텍스트 등은 레코드 세트에 바인딩되지 않습니다 ... 내가 추측 한 코드로 모두해야합니까? 내가 뭘하려고하는지 ppt 자동화 측면에 대한 모든 코드를 (그리고 그것은 많이 !!) 알고, 나는이 모든 정보를 가져 와서 그 쪽을 ppt로 작업 할 수 있다고 가정한다. – Justin

+0

... 그러면이 모든 값을 가져 와서 txt 파일에 입력 할 수 있어야합니다. 전자 메일을 보내는 자동화에 대해 알고 있습니다. 중간에 첨부 파일을 처리하는 방법을 모르겠습니다. 원격 도구의 코드에서 select 문을 실행하지 않고 실행하면 ..... Word 문서, xls 파일, 메모장 등에 UPDATE SQL 문을 저장할 수 있습니까? 그 VB는 무엇입니까? ? 그것이 작동 할 것이라고 생각한다 – Justin

+0

나는 그것이 이상하다는 것에 동의한다. ... 그 단지 상황. 나는이 동료가 현장에서 돌아올 때까지 기다릴 수없고 반환 할 때 정보를 추출하기 때문에 데이터가 약 10 세트 (전체 프로세스)가 필요하고 일반적으로 꽤 빠릅니다. – Justin

2

는 는 제어 &의 유형을 얻을 수있는 컨트롤의 이름 & 사용을 선택하는 경우가에서 적절한 가치를 얻을.

이러한 쌍을 문자열/텍스트 파일에 쓸 수 있습니다.이 파일을 메일 본문으로 만들 수 있습니다.

는 대안 여기서 queryname은 당신이 필요로하는 정보를 모두 추출하는 쿼리입니다 액세스 DoCmd.SendObject

DoCmd.SendObject acSendQuery, QueryName, acFormatXLS, emailAddress, "", "", "Form Data", "", 0 

를 사용합니다. 첨부 된 XLS 파일로 이메일에 전송합니다.

+0

+1 다른 데이터베이스 담당자가 테이블을 좋아할 수도 있습니다. – Fionnuala

2

텍스트 파일을 열고 write # 또는 print # 문을 사용하려고합니다. Access VBA로 가서 쓰기 도움말을 검색하십시오. Write # 문은 필요한 샘플 코드를 제공합니다. 요구 사항에 따라 print # 문이 필요할 수 있습니다.

관련 문제