|
위에 답변 드렸는뎅
ADO를 이용하시면 될 듯 합니다.
ADOTable이나 ADOQuery를 이용하시면 되고염
저는 개인적은로 MDB의 여러 테이블에서 읽어오기 위해서
ADOQuery를 주로 이용한 듯 합니다.
코드입니다.
컴포넌트는 ADOQuery, DataSource, DBGrid사용하시면 되구염
ADOMDBQuery1->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
+ OpenDBName
+ ";Persist Security Info=False";
ADOMDBQuery1->SQL->Clear();
ADOMDBQuery1->SQL->Text = "Select * from " + OpenTableName; // table Name Basic
DataSource1->DataSet = ADOMDBQuery1;
DBGrid1->DataSource = MDBDS1;
ADOMDBQuery1->Open();
SQL 문에서 조인을 이용하시면 쉽게 불러 올 수가 있을 겁니다.
도움이 되셨는지 ?
수수께끼 님이 쓰신 글 :
: 답변 감사합니다 ^^
:
: 그렇다면 access mdb파일을 dbgrid에 뿌리는건 어떻게 하나요??
:
: 김문제 님이 쓰신 글 :
: : StringGrid에는 그런 기능을 부여할 수 가 없는 듯 합니다.
: : 하시려면 적절하게 코딩이 필요할 듯 합니다.
: :
: : 그냥, 엑세스에서 읽어 오는 기능이니까..
: : SQL등을 이용하셔서 DBGrid를 사용하시는 것이 좋을 듯 합니다.
: :
: :
: : StringGrid를 이용하시려면
: : CSV와 StringGrid 그리고 Memo와 TStringList 를 적절하게 이용하셔도 되구요..
: :
: : 이런 저런 생각을 해 보게 되네여
: :
: : 도움이 못되는 듯..
: : 좀더 고민해 보겠습니다.
: :
: :
: : 어짜피..
: : 수수께끼 님이 쓰신 글 :
: : : 스트링그리드에 데이터 뿌리는것까진 했습니다.
: : :
: : : 근데 데이터라는게 레코드도 추가하고 중간에 특정 셀의 데이터를 바꾸기도 하고 뭐 그런 기능이 있어야 하잖아요?
: : :
: : : 단순히 뿌리는것까진 했는데 여기서부터 막히네요 ㅋㅋ
: : :
: : : 스트링그리드를 수정해서 새로운 레코드를 만들고 거기다 데이터를 입력해서 최종적으로 테이블의 내용을 수정하는걸
: : : 하고 싶습니다.
: : :
: : : 스트링그리드는 db네비게이터 같은게 없나요?
: : :
: : : 아래 소스는 스트링그리드에 데이터 뿌린 소스 입니다.
: : :
: : : int RowCount= 1 ;
: : :
: : : AnsiString sSql;
: : :
: : : switch(ComboBox1->ItemIndex){
: : : case 0:
: : : sSql = "select * from Samsung";
: : : break;
: : : case 1:
: : : sSql = "select * from Tesna";
: : : break;
: : : case 2:
: : : sSql = "select * from ASE";
: : : break;
: : : case 3:
: : : sSql = "select * from LUSEM";
: : : break;
: : : case 4:
: : : sSql = "select * from STS";
: : : break;
: : : case 5:
: : : sSql = "select * from SESS";
: : : break;
: : : case 6:
: : : sSql = "select * from Amkor";
: : : break;
: : : default :
: : : MessageBox(Handle,
: : : "인덱스가 잘못되었습니다.","Warning", MB_OK);
: : : break;
: : : }
: : : objData->Recordset = objConn->Execute(sSql, cmdText, TExecuteOptions());
: : :
: : : StringGrid1->Cells[0][0] = "순번";
: : : StringGrid1->Cells[1][0] = "작업날짜";
: : : StringGrid1->Cells[2][0] = "설비명";
: : : StringGrid1->Cells[3][0] = "설비 시리얼No.";
: : : StringGrid1->Cells[4][0] = "고장유형";
: : : StringGrid1->Cells[5][0] = "조치내용";
: : : StringGrid1->Cells[6][0] = "사용 Part";
: : : StringGrid1->Cells[7][0] = "고객 담당자";
: : : StringGrid1->Cells[8][0] = "작업자";
: : : StringGrid1->Cells[9][0] = "비고";
: : :
: : : while (!objData->Eof)
: : : {
: : : StringGrid1->Cells[0][RowCount] = objData->FieldByName
: : : ("순번")->AsString;
: : : StringGrid1->Cells[1][RowCount] = objData->FieldByName
: : : ("작업날짜")->AsString;
: : : StringGrid1->Cells[2][RowCount] = objData->FieldByName
: : : ("설비명")->AsString;
: : : StringGrid1->Cells[3][RowCount] = objData->FieldByName
: : : ("설비 시리얼No")->AsString;
: : : StringGrid1->Cells[4][RowCount] = objData->FieldByName
: : : ("고장유형")->AsString;
: : : StringGrid1->Cells[5][RowCount] = objData->FieldByName
: : : ("조치내용")->AsString;
: : : StringGrid1->Cells[6][RowCount] = objData->FieldByName
: : : ("사용 Part")->AsString;
: : : StringGrid1->Cells[7][RowCount] = objData->FieldByName
: : : ("고객 담당자")->AsString;
: : : StringGrid1->Cells[8][RowCount] = objData->FieldByName
: : : ("작업자")->AsString;
: : : StringGrid1->Cells[9][RowCount] = objData->FieldByName
: : : ("비고")->AsString;
: : : objData->Next();
: : : ++RowCount;
: : : }
: : :
: : : 콤보박스에서 아이템을 선택하면 엑세스db파일의 테이블을 읽어서 그것을 스트링그리드에 표시하는겁니다.
: : :
: : : 고수님들 답변좀 해주세요 ㅎㅎㅎ
: : :
: : : 아 그리고 지금 스트링그리드의 프로퍼티에 레코드갯수(로우 카운트)를 3개로 맞춰놓은 상태인데요.
: : :
: : : 이렇게하면 불러오는 테이블의 레코드가 아무리 많아도 3개까지밖에 표시가 안되더라구요.
: : :
: : : 이걸 불러오는 테이블의 레코드갯수에 자동으로 맞춰지게 하려면 어떻게 해야될까요?
: : :
: : : 물론 스트링그리드의 레코드 범위를 넘어가면 스크롤바가 생겨야겠죠? ㅎㅎ
: : :
: : : 조금만 도와주세요~
|