이민아 님이 쓰신 글 :
: 안녕하세요.
:
: ADO를 이용한 DB 프로그램 질문드립니다.
:
: 1. mdb 파일을 열어서 테이블에 표시하는데 default 설정이 아니라 사용자가 지정 할수있게 할 수 있나요?
: 검색해보니까
:
: ADOConnection1->ConnectionString =
: "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\CALIBU2EX0.mdb";
: ADOConnection1->Connected = true;
: ADOConnection1->Open();
:
:
: 요런식으로 해주면 될거 같은데 막상 해보니까 안되네요
: class EOleException with message 'Opereration is not allowed when the object open
: --> 이런 에러가 떠요..ㅜㅜ
:
: 2. MDB 파일을 엑셀 파일로 바꿀수있는지?
:
: 엑세스에 그런 메뉴가 있는건 봤는데 한 테이블에 한개의 엑셀파일을 만드는건 있네요..
:
: 제가 하고싶은건 MDB 파일안에 테이블이 여러개 있는데 한꺼번에 바꿀수있는 지
: 엑세스에 그런 기능이 없는지? or 프로그램으로 짜는게 가능한건지?.
:
:
: 3. 궁극적으로 하고싶은건 MDB 파일 2개를 compare하여 다른 내용을 알려주는건데요..
:
: 한 DB에 테이블이 많아도 가능하겠죠?
: (사실 제가 DB쪽을 잘 몰라서요)
:
: 질문이 많았네요..
: 일부라도 아시는 분 답변 주시면 넘넘 감사드리구요..복받으실꺼예요 ^.^
참고하세요..
지금 제가 동적으로 MDB파일 불러와서 테이블 생성하는 소스입니다.
bool __fastcall TChildFrm::OpenMDBFile(AnsiString FileName) {
AnsiString ConnectionString;
try {
ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;";
ConnectionString = ConnectionString + "Data Source=" + FileName + ";";
ConnectionString = ConnectionString +
"Persist Security Info=False;Jet OLEDB:Database Password=\"\"";
prjDBConn->ConnectionString = ConnectionString;
}
catch(...) {
ShowMessage("파일열기 실패");
return false;
}
return true;
}
//------------------------------------------------------------------
__fastcall TChildFrm::TChildFrm(TComponent* Owner) : TForm(Owner) {
scriptDirectory = ExtractFilePath(Application->ExeName);
if (openDialog->Execute() == mrOk) {
if(openDialog->FileName.IsEmpty())
return;
if (!OpenMDBFile(openDialog->FileName)) {
ShowMessage("프로그램 종료후 다시 시도해보시기 바랍니다.");
this->Close();
}
}
else {
this->Close();
}
}
설명 : MDI 형식으로 프로그래밍 한것중 차일드마다 MDB를 틀리게 지정합니다.
그래서 차일드가 생성될때 생성자에서 openDialog를 이용하여 MDB를 선택하면
해당 차일드가 선택한 MDB의 포커스를 가지게끔.. ㅎㅎ;;