2011-08-12 2 views
1

Microsoft Access에서 DSNless ODBC 연결을 통해 MySQL 테이블에 액세스하려고합니다. 나는 아무 문제도 실제로 연결하는 유효한 사용자 이름이고 암호는 제공되지 않는다. 그러나 둘 중 하나라도 유효하지 않으면 연결 세부 정보를 묻는 ODBC 대화 상자 화면이 나타납니다. ODBC 대화 상자 화면이 나타나지 않게하고 연결 오류를 없애는 방법이 있습니까?DSN-Less 연결에서 ODBC 대화 상자를 표시하지 않으려면 어떻게합니까?

내 ODBC 연결 문자열은

이다 "ODBC; 드라이버 = MySQL의 ODBC 3.51 드라이버, 서버는 = XXXX; DATABASE는 = XXXX; UID는 = XXXX; PWD = XXXX는, 옵션 = 3"

답변

0

살펴보세요 - 특히 19.1.4.2. Connector/ODBC Connection Parameters

를, "옵션"매개 변수 및 플래그 "FLAG_NO_PROMPT는"...

+0

OPTION = FLAG_NO_PROMPT 설정을 시도했지만 아무런 차이가 없습니다. MySQL 웹 사이트에서이 매개 변수가 작동하지 않는다고 알려진 버그가 있음을 발견했습니다. 그러나 추가 조사에서 나는 ** FLAG_NO_PROMPT = 16 **을 발견했습니다. 그러므로 ** OPTION = 16 **을 시도해 보았습니다. _ 도움 주셔서 감사합니다 _ – Acoats

0

당신은 할 수있다 "DoCmd.SetWarnings False"로 중지 할 수 있습니다.

다른 옵션은 절차 시작시 "On Error Resume Next"를 시도하는 것입니다. 당신은 "ODBC 호출 실패"오류 (나는 err.number = 3151 생각)에 대한 코드에서 확인을 할 수 있습니다. ODBC에 연결하려고 시도한 후 바로 if를 입력하고, 실패하면 exit로 보냅니다.

On Error Resume Next 
Dim db As DAO.Database 'Will also work with ADO 
Dim ODBCstr As String 

Set db = 'Connect with ODBC here 

If Err.Number = 3151 Then 'Could also try If Err.Number <> 0 Then 
    GoTo Exit_ThisCode 
End If 

연결에 실패하면 오류가 실제로 발생하는 한 작동 할 수 있습니다. 특정 오류 코드를 확인하려면 올바른 코드를 알고 있는지 확인하십시오.

+0

내가 사용하고 전체 코드는 다음과 같습니다 – Acoats

+0

공공 기능 MySQLLinkSingle (문자열로 stTableName) 이미 CurrentDb.TableDefs에서 각 TD를 들어 을 연결되어있는 경우 가 '먼저 테이블을 해제 문자열을 TableDef 희미한 stConnect로 오류 고토 SingleLinkTable_Err 희미한 TD에 만약 td.Name = stTableName 다음 현재 Db.TableDefs.Delete stTableName 끝 하면 다음 '연결 해주 외부 데이터 소스 – Acoats

+0

stConnect = "ODBC; 드라이버 ="& cODBCdriver & "; SERVER = "& PSERVER & "; DATABASE ="&를 CDatabase가 & "; UID = "& pUsername & "; PWD =" & pPassword는 & "; 옵션 = 3 " '지정된 테이블 설정 TD 링크는 = CurrentDb.CreateTableDef은 (stTableName는 dbAttachSavePWD, stTableName, stConnect는) CurrentDb.TableDefs.Append TD '는 true를 돌려줍니다 성공 MySQLLinkSingle = 진정한 종료 기능 경우 SingleLinkTable_Err : '성공하지 못하면 false 반환 MySQLLinkSingle = False 최종 기능 – Acoats

0

ODBC API의 실제 인수가 표시되는 것을 막을 수 있습니까? SQLDriverConnect는 표시되는 대화 상자를 중지시키는 SQL_DRIVER_NOPROMPT입니다. 그러나 모든 드라이버가 사양을 정확하게 따르는 것은 아니라는 점에주의해야합니다. MSD가 SQL_DRIVER_NOPROMPT를 사용하여 SQLDriverConnect를 호출하는 방법을 모르겠습니다. 죄송합니다.

+0

고마워, 나는 그것에 대해 조사 할 것이다. – Acoats

관련 문제