programing

오류: "설치 가능한 ISAM을 찾을 수 없습니다."

mailnote 2023. 5. 1. 21:42
반응형

오류: "설치 가능한 ISAM을 찾을 수 없습니다."

데스크톱의 동일한 디렉토리에 있는 Access 데이터베이스에서 데이터를 검색하기 위해 Excel 워크북에 VBA 코드를 작성했습니다.내 컴퓨터와 Windows XP를 실행하는 다른 여러 컴퓨터에서 정상적으로 작동하지만 Vista 컴퓨터에서 테스트할 때 다음 오류가 발생했습니다.

설치 가능한 ISAM을 찾을 수 없습니다.

온라인으로 검색을 많이 해봤는데 구체적인 답을 찾을 수가 없네요.연결 문자열은 문제가 없는 것 같고, 앞서 언급했듯이 여러 기계에서 작동합니다.

이게 무슨 원인인지 아는 사람?내 연결 문자열은 다음과 같습니다.

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\ptdb\Program Tracking Database.mdb;

감사해요.

따옴표로 묶습니다.Extended Properties:

OleDbConnection oconn = 
    new OleDbConnection(
        @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1;';");

해보세요, 정말 효과가 있어요.

데이터 원본 주위에 작은 따옴표를 붙여 보십시오.

Provider=Microsoft.Jet.OLEDB.4.0;Data Source='D:\ptdb\Program Tracking Database.mdb';

문제는 파서에게 의미가 있는 흰색 공간인 경향이 있습니다.

다른 속성(예: 확장 속성)이 있는 경우 해당 값을 작은 따옴표로 묶어야 할 수도 있습니다.

Provider=Microsoft.Jet.OLEDB.4.0;Data Source='D:\ptdb\Program Tracking Database.mdb'; Extended Properties='Excel 8.0;HDR=YES;IMEX=1;';

이중 따옴표도 똑같이 사용할 수 있습니다. 하지만, 여러분은 아마도 그것들을 피해야 할 것입니다. 저는 단일 따옴표를 사용하는 것보다 알고리즘에서 더 많은 고통을 발견했습니다.

연결 문자열에 Jet OLEDB:를 사용하면 됩니다.저는 해결했습니다.

예는 다음과 같습니다.

"Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=E:\Database.mdb;Jet OLEDB:Database Password=b10w"

저는 방금 매우 유사한 문제에 직면했습니다.

당신과 마찬가지로, 제 연결 문자열이 정확해 보였고, 실제로 다른 시나리오에서도 정확히 동일한 연결 문자열이 작동했습니다.

문제는 자원 부족으로 드러났습니다.20개 중 19개는 "설치 가능한 ISAM을 찾을 수 없습니다"라고 표시되지만 한두 번(코드 변경이 전혀 없는 경우)에는 "메모리 부족"이 발생합니다.

기계를 재부팅하면 문제가 "해결"됩니다(현재는...?).이 문제는 Windows XP에서 Jet 버전 4.0.9505.0을 사용하여 발생했습니다.

엑셀 12 xlsx 파일을 업데이트하는 데 사용했습니다.

        System.Data.OleDb.OleDbConnection MyConnection;
        System.Data.OleDb.OleDbCommand myCommand = new System.Data.OleDb.OleDbCommand();
        MyConnection = new System.Data.OleDb.OleDbConnection("provider=Microsoft.ACE.OLEDB.12.0;Data Source='D:\\Programming\\Spreadsheet-Current.xlsx';Extended Properties='Excel 12.0;HDR=YES;';");
        MyConnection.Open();
        myCommand.Connection = MyConnection;
        string sql = "Update [ArticlesV2$] set [ID]='Test' where [ActualPageId]=114";// 
        myCommand.CommandText = sql;
        myCommand.ExecuteNonQuery();
        MyConnection.Close();

이 연결 문자열 사용

string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;" +
      "Data Source=" + strFileName + ";" + "Extended Properties=" + "\"" + "Excel 12.0;HDR=YES;" + "\"";

이 문제는 기기가 Access에 필요한 올바른 ISAM(인덱스 순차 드라이버 방법)을 찾을 수 없기 때문입니다.

기계에 MSAssess가 설치되어 있지 않아서 그런 건가요?Jet의 최신 버전이 있는지 확인하고, 그래도 작동하지 않으면 다른 컴퓨터 중 하나에서 Msrd3x40.dll 파일을 찾아 Vista 시스템 어딘가에 복사한 후 관리 모드에서 regsvr32에 전화하여 해결합니다.

아래 연결 문자열을 사용하여 XLSX 파일에서 읽습니다.

stringConnectionString = "Provider=Provider"입니다.ACE.OLEDB.12.0;데이터 소스=" + <> + ";확장 속성=Excel 8.0;;

언급URL : https://stackoverflow.com/questions/512143/error-could-not-find-installable-isam

반응형